From c56372c3c3320a92af9b8fcd7e31ac29139f98ba Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Mon, 03 Apr 2023 01:27:49 +0800
Subject: [PATCH] 设定时区,这样创建的时间就不会出现问题

---
 src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java |  158 ++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 109 insertions(+), 49 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
index 611da7c..50d1583 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
@@ -14,10 +14,7 @@
 import cc.mrbird.febs.mall.entity.*;
 import cc.mrbird.febs.mall.mapper.*;
 import cc.mrbird.febs.mall.service.*;
-import cc.mrbird.febs.mall.vo.ApiShopApplyVo;
-import cc.mrbird.febs.mall.vo.OrderDetailVo;
-import cc.mrbird.febs.mall.vo.OrderListVo;
-import cc.mrbird.febs.mall.vo.OrderRefundVo;
+import cc.mrbird.febs.mall.vo.*;
 import cc.mrbird.febs.pay.model.AgreementPayDto;
 import cc.mrbird.febs.pay.model.AgreementSignDto;
 import cc.mrbird.febs.pay.model.UnipayDto;
@@ -103,18 +100,36 @@
             throw new FebsException(goods.getGoodsName() + "已下架");
         }
         /**
+         * 存在未支付的订单无法下单
+         */
+        Integer orderIng = this.baseMapper.selectOrderInfoByStatusAndMemberId(OrderStatusEnum.FINISH.getValue(), mallMember.getId());
+        if(1 <= orderIng){
+            throw new FebsException("请先完成未完成的订单");
+        }
+
+        /**
          * 会员一天最多下单次数
          */
         DataDictionaryCustom buyTimesDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
                 DataDictionaryEnum.BUY_TIMES.getType(), DataDictionaryEnum.BUY_TIMES.getCode());
         Integer buyTimes = Integer.parseInt(buyTimesDic.getValue());
 
-        DateTime date = DateUtil.date();
+        DateTime date = DateUtil.offsetHour(DateUtil.date(), -1);
+//        DateTime date = DateUtil.date();
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
         String yyyyMMdd = sdf.format(date);
         Integer times = this.baseMapper.selectCountByCreateTimeAndMemberId(yyyyMMdd,member.getId());
         if(buyTimes <= times){
-            throw new FebsException("会员今日已无法购买");
+            throw new FebsException("今日任务完成,明天再来");
+        }
+
+        DataDictionaryCustom allBuyTimesDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
+                DataDictionaryEnum.ALL_BUY_TIMES.getType(), DataDictionaryEnum.ALL_BUY_TIMES.getCode());
+        Integer allBuyTimes = Integer.parseInt(allBuyTimesDic.getValue());
+
+        Integer allBuyTimesNow = this.baseMapper.selectCountByCreateTime(yyyyMMdd);
+        if(allBuyTimes <= allBuyTimesNow){
+            throw new FebsException("今日任务完成,明天再来");
         }
 
         String orderNo = MallUtils.getOrderNum();
@@ -127,6 +142,7 @@
         orderInfo.setOrderType(addOrderDto.getOrderType());
         //补贴金额
         orderInfo.setSubsidyAmount(goods.getSubsidyAmount());
+        orderInfo.setCommentState(MallOrderInfo.COMMENT_STATE_NO);
 
         this.baseMapper.insert(orderInfo);
         List<MallGoodsSku> mallGoodsSkus = mallGoodsSkuMapper.selectSkuByGoodsId(goods.getId());
@@ -146,7 +162,7 @@
                 orderItem.setOrderId(orderInfo.getId());
                 orderItem.setPrice(sku.getPresentPrice());
                 orderItem.setGoodsId(sku.getGoodsId());
-                orderItem.setGoodsName(sku.getGoodsName());
+                orderItem.setGoodsName(goods.getGoodsName());
                 orderItem.setSkuId(sku.getId());
                 orderItem.setStyleName(sku.getStyleName());
                 orderItem.setSkuName(sku.getSkuName());
@@ -449,18 +465,18 @@
 
         OrderDetailVo orderDetailVo = MallOrderInfoConversion.INSTANCE.entityToDetailVo(orderInfo);
 
-        Integer deliverType = (ObjectUtil.isEmpty(orderInfo.getDeliverType()) ? new Integer(0):orderInfo.getDeliverType());
-        if (orderInfo.getStatus() == OrderStatusEnum.WAIT_FINISH.getValue() && 2 != deliverType) {
-            MallExpressInfo expressInfo = expressInfoMapper.selectByOrderId(orderInfo.getId());
-            orderDetailVo.setExpressNo(expressInfo.getExpressNo());
-            orderDetailVo.setExpressCom(expressInfo.getExpressCom());
-        }
+//        Integer deliverType = (ObjectUtil.isEmpty(orderInfo.getDeliverType()) ? new Integer(0):orderInfo.getDeliverType());
+//        if (orderInfo.getStatus() == OrderStatusEnum.WAIT_FINISH.getValue() && 2 != deliverType) {
+//            MallExpressInfo expressInfo = expressInfoMapper.selectByOrderId(orderInfo.getId());
+//            orderDetailVo.setExpressNo(expressInfo.getExpressNo());
+//            orderDetailVo.setExpressCom(expressInfo.getExpressCom());
+//        }
 
-        if (orderInfo.getStatus() == OrderStatusEnum.REFUNDING.getValue() || orderInfo.getStatus() == OrderStatusEnum.REFUNDED.getValue()) {
-            MallOrderRefund orderRefund = mallOrderRefundMapper.selectOrderRefundByOrderId(orderInfo.getId());
-            OrderRefundVo orderRefundVo = MallOrderRefundConversion.INSTANCE.entityToVo(orderRefund);
-            orderDetailVo.setOrderRefund(orderRefundVo);
-        }
+//        if (orderInfo.getStatus() == OrderStatusEnum.REFUNDING.getValue() || orderInfo.getStatus() == OrderStatusEnum.REFUNDED.getValue()) {
+//            MallOrderRefund orderRefund = mallOrderRefundMapper.selectOrderRefundByOrderId(orderInfo.getId());
+//            OrderRefundVo orderRefundVo = MallOrderRefundConversion.INSTANCE.entityToVo(orderRefund);
+//            orderDetailVo.setOrderRefund(orderRefundVo);
+//        }
 
         if (OrderStatusEnum.WAIT_PAY.getValue() == orderInfo.getStatus()) {
             Date endTime = DateUtil.offsetMinute(orderInfo.getOrderTime(), 15);
@@ -468,20 +484,20 @@
             long remainTime = DateUtil.between(new Date(), endTime, DateUnit.SECOND, false);
             orderDetailVo.setRemainTime(remainTime);
         }
-        if(2 == deliverType){
-            MallShopApply mallShopApply = mallShopApplyMapper.selectById(orderInfo.getShopId());
-            if(ObjectUtil.isNotEmpty(mallShopApply)){
-                ApiShopApplyVo apiShopApplyVo = new ApiShopApplyVo();
-                apiShopApplyVo.setName(mallShopApply.getName());
-                apiShopApplyVo.setPhone(mallShopApply.getPhone());
-                apiShopApplyVo.setSaleArea(mallShopApply.getSaleArea());
-                apiShopApplyVo.setLatitude(mallShopApply.getLatitude());
-                apiShopApplyVo.setLongitude(mallShopApply.getLongitude());
-                apiShopApplyVo.setShopName(mallShopApply.getShopName());
-                apiShopApplyVo.setAddress(mallShopApply.getAddress());
-                orderDetailVo.setApiShopApplyVo(apiShopApplyVo);
-            }
-        }
+//        if(2 == deliverType){
+//            MallShopApply mallShopApply = mallShopApplyMapper.selectById(orderInfo.getShopId());
+//            if(ObjectUtil.isNotEmpty(mallShopApply)){
+//                ApiShopApplyVo apiShopApplyVo = new ApiShopApplyVo();
+//                apiShopApplyVo.setName(mallShopApply.getName());
+//                apiShopApplyVo.setPhone(mallShopApply.getPhone());
+//                apiShopApplyVo.setSaleArea(mallShopApply.getSaleArea());
+//                apiShopApplyVo.setLatitude(mallShopApply.getLatitude());
+//                apiShopApplyVo.setLongitude(mallShopApply.getLongitude());
+//                apiShopApplyVo.setShopName(mallShopApply.getShopName());
+//                apiShopApplyVo.setAddress(mallShopApply.getAddress());
+//                orderDetailVo.setApiShopApplyVo(apiShopApplyVo);
+//            }
+//        }
         return orderDetailVo;
     }
 
@@ -501,22 +517,22 @@
         orderInfo.setStatus(OrderStatusEnum.FINISH.getValue());
         orderInfo.setReceivingTime(new Date());
         this.baseMapper.updateById(orderInfo);
-        /**
-         * 通过支付流水记录,返回下单金额
-         */
-        MallMoneyFlow payFlow = mallMoneyFlowMapper.selectOneByMemberIdAndOrderNoAndTypeAndStatusAndIsReturn(
-                member.getId(),
-                orderInfo.getOrderNo(),
-                MallMoneyFlowTypeEnum.PAY.getCode(),
-                MallMoneyFlow.STATUS_SUCCESS,
-                MallMoneyFlow.IS_RETURN_N);
-        if(ObjectUtil.isNotEmpty(payFlow)){
-            memberWalletService.addBalance(payFlow.getAmount().negate(),payFlow.getRtMemberId());
-            payFlow.setIsReturn(MallMoneyFlow.IS_RETURN_Y);
-            mallMoneyFlowMapper.updateById(payFlow);
-        }
-        //产生补贴流水记录
-        agentProducer.sendDirectRewardMsg(orderInfo.getId());
+//        /**
+//         * 通过支付流水记录,返回下单金额
+//         */
+//        MallMoneyFlow payFlow = mallMoneyFlowMapper.selectOneByMemberIdAndOrderNoAndTypeAndStatusAndIsReturn(
+//                member.getId(),
+//                orderInfo.getOrderNo(),
+//                MallMoneyFlowTypeEnum.PAY.getCode(),
+//                MallMoneyFlow.STATUS_SUCCESS,
+//                MallMoneyFlow.IS_RETURN_N);
+//        if(ObjectUtil.isNotEmpty(payFlow)){
+//            memberWalletService.addBalance(payFlow.getAmount().negate(),payFlow.getRtMemberId());
+//            payFlow.setIsReturn(MallMoneyFlow.IS_RETURN_Y);
+//            mallMoneyFlowMapper.updateById(payFlow);
+//        }
+//        //产生补贴流水记录
+//        agentProducer.sendDirectRewardMsg(orderInfo.getId());
 
     }
 
@@ -650,13 +666,30 @@
 
         orderInfo.setCommentState(MallOrderInfo.COMMENT_STATE_YES);
         this.baseMapper.updateById(orderInfo);
+        /**
+         * 通过支付流水记录,返回下单金额
+         */
+        MallMoneyFlow payFlow = mallMoneyFlowMapper.selectOneByMemberIdAndOrderNoAndTypeAndStatusAndIsReturn(
+                member.getId(),
+                orderInfo.getOrderNo(),
+                MallMoneyFlowTypeEnum.PAY.getCode(),
+                MallMoneyFlow.STATUS_SUCCESS,
+                MallMoneyFlow.IS_RETURN_N);
+        if(ObjectUtil.isNotEmpty(payFlow)){
+            memberWalletService.addBalance(payFlow.getAmount().negate(),payFlow.getRtMemberId());
+            payFlow.setIsReturn(MallMoneyFlow.IS_RETURN_Y);
+            mallMoneyFlowMapper.updateById(payFlow);
+        }
+        //产生补贴流水记录
+        agentProducer.sendDirectRewardMsg(orderInfo.getId());
 
         List<ApiAddCommentDto> apiAddCommentDtos = addCommentDtos.getApiAddCommentDtos();
         if(CollUtil.isNotEmpty(apiAddCommentDtos)){
             for(ApiAddCommentDto apiAddCommentDto : apiAddCommentDtos){
                 Long skuId = apiAddCommentDto.getSkuId();
-                MallGoodsSku mallGoodsSku = mallGoodsSkuMapper.selectById(skuId);
                 Long goodsId = apiAddCommentDto.getGoodsId();
+                List<MallGoodsSku> mallGoodsSkus = mallGoodsSkuMapper.selectSkuByGoodsId(goodsId);
+                MallGoodsSku mallGoodsSku = mallGoodsSkus.get(0);
                 MallGoods mallGoods = mallGoodsMapper.selectById(goodsId);
                 MallGoodsComment mallGoodsComment = MallGoodsCommentConversion.INSTANCE.dtoToEntity(apiAddCommentDto);
                 mallGoodsComment.setMemberId(member.getId());
@@ -684,4 +717,31 @@
         }
     }
 
+    @Override
+    public FebsResponse subsidyAmountInfo() {
+        MallMember member = LoginUserUtil.getLoginUser();
+        ApiMallSubsidyAmountInfoVo apiMallSubsidyAmountInfoVo = new ApiMallSubsidyAmountInfoVo();
+        DateTime today = DateUtil.date();
+        DateTime yesterday = DateUtil.yesterday();
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+        String yyyyMMddToday = sdf.format(today);
+        String yyyyMMddYesterday = sdf.format(yesterday);
+        //今日补贴
+        BigDecimal todayAmount = this.baseMapper.selectTodayAmountByCreateTimeAndMemberId(yyyyMMddToday,member.getId());
+        apiMallSubsidyAmountInfoVo.setTodayAmount(todayAmount);
+        //累计接单
+        Integer todayTotalCnt = this.baseMapper.selectCountByCreateTimeAndMemberId(null,member.getId());
+        apiMallSubsidyAmountInfoVo.setTodayTotalCnt(todayTotalCnt);
+        //昨日补贴
+        BigDecimal yesterdayAmount = this.baseMapper.selectTodayAmountByCreateTimeAndMemberId(yyyyMMddYesterday,member.getId());
+        apiMallSubsidyAmountInfoVo.setYesterdayAmount(yesterdayAmount);
+        //昨日累计接单
+        Integer totalYesterdayCnt = this.baseMapper.selectCountByCreateTimeAndMemberId(yyyyMMddYesterday,member.getId());
+        apiMallSubsidyAmountInfoVo.setTotalYesterdayCnt(totalYesterdayCnt);
+        //获得总额
+        BigDecimal totalAmount = this.baseMapper.selectTodayAmountByCreateTimeAndMemberId(null,member.getId());
+        apiMallSubsidyAmountInfoVo.setTotalAmount(totalAmount);
+        return new FebsResponse().success().data(apiMallSubsidyAmountInfoVo);
+    }
+
 }

--
Gitblit v1.9.1