puzhibing
2023-08-16 d5b3e5a413bcfccba294793ee093722f31b2448a
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);
    }
}