From d5b3e5a413bcfccba294793ee093722f31b2448a Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期三, 16 八月 2023 17:02:13 +0800
Subject: [PATCH] 添加推单日志

---
 management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TOrderServiceImpl.java |   67 ++++++++++++++++++++++-----------
 1 files changed, 44 insertions(+), 23 deletions(-)

diff --git a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TOrderServiceImpl.java b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TOrderServiceImpl.java
index 5d1b79f..7f36fa0 100644
--- a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TOrderServiceImpl.java
+++ b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TOrderServiceImpl.java
@@ -1,6 +1,6 @@
 package com.stylefeng.guns.modular.system.service.impl;
 
-import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
 import com.stylefeng.guns.core.shiro.ShiroKit;
 import com.stylefeng.guns.modular.system.controller.resp.DataStatisticsOrderYearResp;
 import com.stylefeng.guns.modular.system.controller.resp.PerformanceTableResp;
@@ -9,14 +9,13 @@
 import com.stylefeng.guns.modular.system.dao.TAppUserMapper;
 import com.stylefeng.guns.modular.system.dao.TBranchOfficeMapper;
 import com.stylefeng.guns.modular.system.dao.TDriverMapper;
+import com.stylefeng.guns.modular.system.dao.TOrderMapper;
 import com.stylefeng.guns.modular.system.enums.OrderStateEnum;
 import com.stylefeng.guns.modular.system.model.TAppUser;
 import com.stylefeng.guns.modular.system.model.TBranchOffice;
 import com.stylefeng.guns.modular.system.model.TDriver;
 import com.stylefeng.guns.modular.system.model.TOrder;
-import com.stylefeng.guns.modular.system.dao.TOrderMapper;
 import com.stylefeng.guns.modular.system.service.ITOrderService;
-import com.baomidou.mybatisplus.service.impl.ServiceImpl;
 import com.stylefeng.guns.modular.system.util.DateUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -24,7 +23,10 @@
 import org.springframework.util.CollectionUtils;
 import org.springframework.util.StringUtils;
 
+import javax.annotation.Resource;
 import java.math.BigDecimal;
+import java.math.MathContext;
+import java.math.RoundingMode;
 import java.text.SimpleDateFormat;
 import java.time.LocalDate;
 import java.util.*;
@@ -40,13 +42,16 @@
 @Service
 public class TOrderServiceImpl extends ServiceImpl<TOrderMapper, TOrder> implements ITOrderService {
 
-    @Autowired
+    @Resource
     private TOrderMapper tOrderMapper;
-    @Autowired
+
+    @Resource
     private TAppUserMapper tAppUserMapper;
-    @Autowired
+
+    @Resource
     private TDriverMapper tDriverMapper;
-    @Autowired
+
+    @Resource
     private TBranchOfficeMapper tBranchOfficeMapper;
 
     @Override
@@ -56,8 +61,8 @@
         // 开始,结束时间
         if(StringUtils.hasLength(createTime)){
             String[] split = createTime.split(" - ");
-            startTime = split[0];
-            endTime = split[1];
+            startTime = split[0] + " 00:00:00";
+            endTime = split[1] + " 23:59:59";
         }
         Integer roleType = Objects.requireNonNull(ShiroKit.getUser()).getRoleType();
         Integer objectId = Objects.requireNonNull(ShiroKit.getUser()).getObjectId();
@@ -68,6 +73,7 @@
     public void orderDetail(Integer orderId, Model model) {
         // 订单信息
         TOrder tOrder = tOrderMapper.selectById(orderId);
+        model.addAttribute("id", orderId);
         model.addAttribute("createTime",new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(tOrder.getCreateTime()));//下单时间
         model.addAttribute("code",tOrder.getCode());//订单编号
         model.addAttribute("source",tOrder.getSource());//订单来源
@@ -95,7 +101,7 @@
         }
         model.addAttribute("startPrice",tOrder.getStartPrice());//起步价
         model.addAttribute("overDrivePrice",tOrder.getOverDrivePrice());//里程费
-        model.addAttribute("waitTimePrice",tOrder.getWaitTimePrice());//等待费
+        model.addAttribute("waitTimePrice",tOrder.getWaitTimePrice().add(tOrder.getOutWaitTimePrice()));//等待费
         model.addAttribute("badWeatherPrice",tOrder.getBadWeatherPrice());//恶劣天气费用
         model.addAttribute("orderMoney",tOrder.getOrderMoney());//实际费用
         model.addAttribute("payMoney",tOrder.getPayMoney());//实际支付费用
@@ -104,16 +110,24 @@
         model.addAttribute("discountAmount",tOrder.getDiscountAmount());//折扣金额
         model.addAttribute("userId",tOrder.getUserId());//用户id
         model.addAttribute("routeRecord",tOrder.getRouteRecord());//行程录音
+        model.addAttribute("userPhone",tOrder.getUserPhone());//用户手机号
+        model.addAttribute("userName",tOrder.getUserName());//用户名称
 
         // 查询用户
         TAppUser tAppUser = tAppUserMapper.selectById(tOrder.getUserId());
-        model.addAttribute("userName",tAppUser.getNickname());
-        model.addAttribute("userPhone",tAppUser.getPhone());
-        model.addAttribute("havDiscount",tAppUser.getHavDiscount());
-        if(1 == tAppUser.getHavDiscount()){
-            // 计算9折优惠金额
-            BigDecimal multiply = tOrder.getOrderMoney().multiply(new BigDecimal("0.1")).setScale(2);
-            model.addAttribute("multiply",multiply);
+        if(Objects.nonNull(tAppUser)){
+            model.addAttribute("havDiscount",tAppUser.getHavDiscount());
+            if(1 == tAppUser.getHavDiscount()){
+                BigDecimal subtract = tOrder.getOrderMoney().subtract(tOrder.getDiscountedPrice());
+                // 计算95折优惠金额
+                BigDecimal multiply = subtract.multiply(new BigDecimal("0.05"), new MathContext(2, RoundingMode.HALF_EVEN));
+                model.addAttribute("multiply",multiply);
+            }else {
+                model.addAttribute("multiply",0);
+            }
+        }else {
+            model.addAttribute("havDiscount",0);
+            model.addAttribute("multiply",0);
         }
 
         // 查询司机
@@ -204,9 +218,9 @@
 
     @Override
     public void getDataStatisticsCountByIds(List<Integer> ids, Model model) {
-        Integer pendingOrderCount = tOrderMapper.getDataStatisticsCountByIds(ids, OrderStateEnum.PENDING_ORDER.getCode(), LocalDate.now());
-        Integer finishCount = tOrderMapper.getDataStatisticsCountByIds(ids, OrderStateEnum.FINISH.getCode(),LocalDate.now());
-        Integer cancelCount = tOrderMapper.getDataStatisticsCountByIds(ids, OrderStateEnum.CANCELED.getCode(),LocalDate.now());
+        Integer pendingOrderCount = tOrderMapper.getDataStatisticsCountByIds(ids, 1, LocalDate.now());
+        Integer finishCount = tOrderMapper.getDataStatisticsCountByIds(ids, 2,LocalDate.now());
+        Integer cancelCount = tOrderMapper.getDataStatisticsCountByIds(ids, 3,LocalDate.now());
         Integer serverCount = tOrderMapper.getDataStatisticsServerCountByIds(ids, LocalDate.now());
 
         model.addAttribute("pendingOrderCount",pendingOrderCount);
@@ -241,9 +255,9 @@
 
     @Override
     public void getDataStatisticsCountByIdsGetMap(List<Integer> ids, HashMap<String, Object> map) {
-        Integer pendingOrderCount = tOrderMapper.getDataStatisticsCountByIds(ids, OrderStateEnum.PENDING_ORDER.getCode(), LocalDate.now());
-        Integer finishCount = tOrderMapper.getDataStatisticsCountByIds(ids, OrderStateEnum.FINISH.getCode(),LocalDate.now());
-        Integer cancelCount = tOrderMapper.getDataStatisticsCountByIds(ids, OrderStateEnum.CANCELED.getCode(),LocalDate.now());
+        Integer pendingOrderCount = tOrderMapper.getDataStatisticsCountByIds(ids, 1, LocalDate.now());
+        Integer finishCount = tOrderMapper.getDataStatisticsCountByIds(ids, 2,LocalDate.now());
+        Integer cancelCount = tOrderMapper.getDataStatisticsCountByIds(ids, 3,LocalDate.now());
         Integer serverCount = tOrderMapper.getDataStatisticsServerCountByIds(ids, LocalDate.now());
 
         map.put("pendingOrderCount",pendingOrderCount);
@@ -345,4 +359,11 @@
         model.addAttribute("monthResp",resps);
         map.put("monthResp",resps);
     }
+
+
+    @Override
+    public Integer getValidOrderCount(Integer driverId, BigDecimal orderMoney, String month) {
+        // 查询司机当月有效订单数量
+        return tOrderMapper.getValidOrderCount(driverId,orderMoney,month);
+    }
 }

--
Gitblit v1.7.1