Pu Zhibing
2025-08-01 926e065fb0b4424d0d51023c234a92433bac61c8
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TPromotionOrderCarController.java
New file
@@ -0,0 +1,209 @@
package com.stylefeng.guns.modular.system.controller.specialTrain;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.stylefeng.guns.core.base.controller.BaseController;
import com.stylefeng.guns.core.beetl.ShiroExtUtil;
import com.stylefeng.guns.core.common.constant.factory.PageFactory;
import com.stylefeng.guns.core.util.DateUtil;
import com.stylefeng.guns.core.util.SinataUtil;
import com.stylefeng.guns.core.util.ToolUtil;
import com.stylefeng.guns.modular.system.dao.OrderCancelMapper;
import com.stylefeng.guns.modular.system.model.*;
import com.stylefeng.guns.modular.system.service.*;
import com.stylefeng.guns.modular.system.util.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.domain.Sort;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.math.BigDecimal;
import java.util.*;
/**
 * 快车订单控制器
 *
 * @author fengshuonan
 * @Date 2020-09-02 17:28:59
 */
@Controller
@RequestMapping("/promotionInfo")
public class TPromotionOrderCarController extends BaseController {
    private String PREFIX = "/system/tPromotionOrderCar/";
    @Autowired
    private ITOrderPrivateCarService tOrderPrivateCarService;
    @Autowired
    private ShiroExtUtil shiroExtUtil;
    /**
     * 跳转到快车订单首页
     */
    @RequestMapping("")
    public String index(Model model) {
        List<Map<String, Object>> list=new ArrayList<>();
        list =  tOrderPrivateCarService.promotionInfoExport(null, null, null, null, null, null, null, shiroExtUtil.getUser().getRoleType(), shiroExtUtil.getUser().getObjectId());
        BigDecimal reduce = list.stream().map(e -> new BigDecimal(e.get("promotionMoney").toString())).reduce(BigDecimal.ZERO, BigDecimal::add);
        model.addAttribute("money",reduce);
        model.addAttribute("size",list.size());
        return PREFIX + "tPromotionOrder.html";
    }
    /**
     * 获取快车订单列表
     */
    @RequestMapping(value = "/list")
    @ResponseBody
    public Object list(String insertTime,
                       String orderNum,
                       String userName,
                       String name,
                       String driverName){
        String beginTime = null;
        String endTime = null;
        if (SinataUtil.isNotEmpty(insertTime)) {
            String[] timeArray = insertTime.split(" - ");
            beginTime = timeArray[0];
            endTime = timeArray[1];
        }
        Page<Map<String, Object>> page = new PageFactory<Map<String, Object>>().defaultPage();
        page.setRecords(tOrderPrivateCarService.promotionInfo(page, beginTime, endTime, orderNum, userName, name, driverName, shiroExtUtil.getUser().getRoleType(), shiroExtUtil.getUser().getObjectId()));
        return super.packForBT(page);
    }
    @GetMapping("/export")
    @ResponseBody
    public void export(String insertTime,
                       String orderNum,
                       String userName,
                       String name,
                       String driverName, HttpServletRequest request, HttpServletResponse response) {
        try {
            String beginTime = null;
            String endTime = null;
            if (SinataUtil.isNotEmpty(insertTime)) {
                String[] timeArray = insertTime.split(" - ");
                beginTime = timeArray[0];
                endTime = timeArray[1];
            }
            List<Map<String, Object>> list=new ArrayList<>();
            list =  tOrderPrivateCarService.promotionInfoExport(null, beginTime, endTime, orderNum, userName, name, driverName, shiroExtUtil.getUser().getRoleType(), shiroExtUtil.getUser().getObjectId());
            // 表格数据【封装】
            List<List<String>> dataList = new ArrayList<>();
            //第一行显示【封装】
            List<String> twoList = new ArrayList<String>();
            twoList.add("总计:");
            twoList.add(String.valueOf(list.size())+"条");
            dataList.add(twoList);
            // 列【封装】
            List<String> shellList = new ArrayList<String>();
            shellList.add("活动名称");
            shellList.add("司机名称");
            shellList.add("下级用户");
            shellList.add("订单编号");
            shellList.add("订单金额");
            shellList.add("司机推广收益");
            shellList.add("收益时间");
            dataList.add(shellList);
            for (Map<String,Object> object : list){
                // 详细数据列【封装】
                shellList = new ArrayList<String>();
                if(SinataUtil.isNotEmpty(object.get("name"))){
                    shellList.add(object.get("name").toString());
                }else{
                    shellList.add("-");
                }
                if(SinataUtil.isNotEmpty(object.get("driverName"))){
                    shellList.add(object.get("driverName").toString());
                }else{
                    shellList.add("-");
                }
                if(SinataUtil.isNotEmpty(object.get("userName"))){
                    shellList.add(object.get("userName").toString());
                }else{
                    shellList.add("-");
                }
                if(SinataUtil.isNotEmpty(object.get("orderNum"))){
                    shellList.add(object.get("orderNum").toString());
                }else{
                    shellList.add("-");
                }
                if(SinataUtil.isNotEmpty(object.get("money"))){
                    shellList.add(object.get("money").toString());
                }else{
                    shellList.add("-");
                }
                if(SinataUtil.isNotEmpty(object.get("promotionMoney"))){
                    shellList.add(object.get("promotionMoney").toString());
                }else{
                    shellList.add("-");
                }
                if(SinataUtil.isNotEmpty(object.get("successTime"))){
                    shellList.add(DateUtil.formatDate(DateUtil.parse(object.get("successTime").toString(),"YYYY-MM-dd HH:mm:ss.S"), "YYYY-MM-dd HH:mm:ss"));
                }else{
                    shellList.add("-");
                }
                dataList.add(shellList);
            }
            try {
                // 调用工具类进行导出
                ExcelExportUtil.easySheet("推广收益明细导出记录"+DateUtil.formatDate(new Date(), "YYYYMMddHHmmss"), "推广收益明细导出记录", dataList,request, response);
            } catch (Exception e) {
                e.printStackTrace();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    @PostMapping("/list1")
    @ResponseBody
    public Object list1(String insertTime,
                       String orderNum,
                       String userName,
                       String name,
                       String driverName) {
            String beginTime = null;
            String endTime = null;
            if (SinataUtil.isNotEmpty(insertTime)) {
                String[] timeArray = insertTime.split(" - ");
                beginTime = timeArray[0];
                endTime = timeArray[1];
            }
            List<Map<String, Object>> list=new ArrayList<>();
            list =  tOrderPrivateCarService.promotionInfoExport(null, beginTime, endTime, orderNum, userName, name, driverName, shiroExtUtil.getUser().getRoleType(), shiroExtUtil.getUser().getObjectId());
        HashMap<String, Object> map = new HashMap<>();
        BigDecimal reduce = list.stream().map(e -> new BigDecimal(e.get("promotionMoney").toString())).reduce(BigDecimal.ZERO, BigDecimal::add);
        map.put("money", reduce);
        map.put("size", list.size());
        return map;
    }
}