From a067fdbf6b1374a1402096c722257575916eab99 Mon Sep 17 00:00:00 2001
From: wjli <591616088@qq.com>
Date: 星期四, 11 五月 2023 16:21:14 +0800
Subject: [PATCH] 1.首页分段显示 2.配送订单页可根据分段显示 3.后端配送率统计
---
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/CarController.java | 264 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 264 insertions(+), 0 deletions(-)
diff --git a/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/CarController.java b/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/CarController.java
new file mode 100644
index 0000000..e5a0da8
--- /dev/null
+++ b/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/CarController.java
@@ -0,0 +1,264 @@
+package cn.exrick.xboot.your.controller;
+
+import cn.exrick.xboot.core.common.utils.PageUtil;
+import cn.exrick.xboot.core.common.utils.ResultUtil;
+import cn.exrick.xboot.core.common.utils.SecurityUtil;
+import cn.exrick.xboot.core.common.vo.PageVo;
+import cn.exrick.xboot.core.common.vo.Result;
+import cn.exrick.xboot.core.entity.User;
+import cn.exrick.xboot.your.entity.*;
+import cn.exrick.xboot.your.service.*;
+import cn.exrick.xboot.your.vo.CarVo;
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.segments.MergeSegments;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * @author zhangzeli
+ */
+@Slf4j
+@RestController
+@Api(tags = "杞﹁締琛ㄧ鐞嗘帴鍙�")
+@RequestMapping("/xboot/car")
+@Transactional
+public class CarController {
+
+ @Autowired
+ private ICarService iCarService;
+ @Autowired
+ private IAddOilService iAddOilService;
+ @Autowired
+ private IDrivingRecordService iDrivingRecordService;
+ @Autowired
+ private SecurityUtil securityUtil;
+
+
+ @RequestMapping(value = "/get/{id}", method = RequestMethod.GET)
+ @ApiOperation(value = "閫氳繃id鑾峰彇")
+ public Result<Car> get(@PathVariable String id) {
+
+ Car car = iCarService.getById(id);
+ return new ResultUtil<Car>().setData(car);
+ }
+
+ @RequestMapping(value = "/getAllCar", method = RequestMethod.GET)
+ @ApiOperation(value = "鑾峰彇鍏ㄩ儴鏁版嵁")
+ public Result<List<Car>> getAllCar() {
+
+ List<Car> list = iCarService.list();
+ return new ResultUtil<List<Car>>().setData(list);
+ }
+
+ @RequestMapping(value = "/getBindCar", method = RequestMethod.GET)
+ @ApiOperation(value = "鑾峰彇缁戝畾鐨勮溅杈�")
+ public Result<Car> getBindCar() {
+ String userId = securityUtil.getCurrUser().getId();
+ QueryWrapper<Car> carQueryWrapper = new QueryWrapper<Car>();
+ carQueryWrapper.eq("user_id",userId).or().eq("follow_user_id",userId);
+ Car car = iCarService.getOne(carQueryWrapper);
+ return new ResultUtil<Car>().setData(car);
+ }
+
+ @RequestMapping(value = "/getAll", method = RequestMethod.GET)
+ @ApiOperation(value = "鑾峰彇鍏ㄩ儴鏁版嵁")
+ public Result<List<CarVo>> getAll(String beginTime,String endTime,PageVo page) {
+ List<CarVo> carVos = new ArrayList<>();
+ java.text.DecimalFormat df =new java.text.DecimalFormat("#.##");
+ IPage<Car> list = iCarService.getAll2(PageUtil.initMpPage(page));
+ for (Car car:list.getRecords()){
+ CarVo carVo = new CarVo();
+ //鍔犳补淇℃伅
+ QueryWrapper<AddOil> queryWrapper = new QueryWrapper<>();
+ queryWrapper.select("sum(money) as money,sum(amount) as amount").eq("car_id", car.getId());
+
+
+ //浠庡彂杞︽椂闂磋椹堕噷绋嬪垽鏂垵濮嬮噷绋�
+ QueryWrapper<DrivingRecord> wrapper = new QueryWrapper<>();
+ wrapper.select("min(mileage) as beginMileage,max(mileage) as endMileage").eq("car_id",car.getId());
+
+ wrapper.ge(beginTime!=null && beginTime!="","out_time",beginTime);
+ queryWrapper.ge(beginTime!=null && beginTime!="","add_date",beginTime);
+
+ wrapper.le(endTime!=null && endTime!="","in_time",endTime);
+ queryWrapper.le(endTime!=null && endTime!="","add_date",endTime);
+
+ QueryWrapper<OrderTask> wrapper1 = new QueryWrapper<>();
+
+
+ wrapper1.eq("car_id",car.getId());
+ wrapper1.ge(beginTime!=null && beginTime!="","send_date",beginTime);
+ wrapper1.le(endTime!=null && endTime!="","send_date",endTime);
+
+
+ DrivingRecord drivingRecord = iDrivingRecordService.getOne(wrapper);
+
+ AddOil addOil = iAddOilService.getOne(queryWrapper);
+
+ if (addOil!=null){
+ carVo.setMoney(Double.parseDouble(df.format(addOil.getMoney())));
+ carVo.setOilWear(Double.parseDouble(df.format(addOil.getAmount())));
+ }
+
+ if (drivingRecord!=null) {
+ carVo.setBeginMileage(drivingRecord.getBeginMileage());
+ carVo.setEndMileage(drivingRecord.getEndMileage());
+ }
+
+ carVo.setCar(car);
+ carVos.add(carVo);
+ carVo.setTotal(list.getTotal());
+ }
+ return new ResultUtil<List<CarVo>>().setData(carVos);
+ }
+ @RequestMapping(value = "/getInfo", method = RequestMethod.GET)
+ @ApiOperation(value = "閫氳繃杞﹁締id鑾峰彇")
+ public Result<List<Car>> getInfo(String beginTime,String endTime) {
+ java.text.DecimalFormat df =new java.text.DecimalFormat("#.##");
+
+ QueryWrapper<AddOil> wrapper = new QueryWrapper<>();
+ wrapper.ge(beginTime!=null && beginTime!="","add_date",beginTime);
+ wrapper.le(endTime!=null && endTime!="","add_date",endTime);
+// wrapper.groupBy("car_id");
+ List<AddOil> addOilList = iAddOilService.list(wrapper);
+ List<Car> list = new ArrayList<>();
+ Map<String, List<AddOil>> collect = addOilList.stream().collect(Collectors.groupingBy(AddOil::getCarId));
+ for (Map.Entry<String, List<AddOil>> stringListEntry : collect.entrySet()) {
+ String key = stringListEntry.getKey();
+ Car car = iCarService.getById(key);
+ Car carInfoByCarId = iCarService.getCarInfoByCarId(key);
+ car.setAmount(Double.parseDouble(df.format(carInfoByCarId.getAmount())));
+ car.setMileage(Double.parseDouble(df.format(carInfoByCarId.getMileage())));
+ car.setMoney(Double.parseDouble(df.format(carInfoByCarId.getMoney())));
+ car.setAllAmount(Double.parseDouble(df.format(carInfoByCarId.getAllAmount())));
+ car.setAllMileage(Double.parseDouble(df.format(carInfoByCarId.getAllMileage())));
+ car.setAllMoney(Double.parseDouble(df.format(carInfoByCarId.getAllMoney())));
+ list.add(car);
+ }
+// List<Car> list2 = iCarService.getCarInfo2(wrapper);
+// List<Car> list = iCarService.getCarInfo();
+// for (Car car:list2){
+// for (Car car1:list){
+// if (car.getId().equals(car1.getId())){
+// car1.setAmount(Double.parseDouble(df.format(car.getAmount())));
+// car1.setMileage(Double.parseDouble(df.format(car.getMileage())));
+// car1.setMoney(Double.parseDouble(df.format(car.getMoney())));
+// car1.setAllAmount(Double.parseDouble(df.format(car1.getAllAmount())));
+// car1.setAllMileage(Double.parseDouble(df.format(car1.getAllMileage())));
+// car1.setAllMoney(Double.parseDouble(df.format(car1.getAllMoney())));
+// continue;
+// }
+// }
+// }
+ return new ResultUtil<List<Car>>().setData(list);
+ }
+
+ @RequestMapping(value = "/getByPage", method = RequestMethod.GET)
+ @ApiOperation(value = "鍒嗛〉鑾峰彇")
+ public Result<IPage<Car>> getByPage(String carNo,PageVo page) {
+ QueryWrapper<Car> wrapper = new QueryWrapper<>();
+ if(!StrUtil.isEmpty(carNo)){
+ wrapper.like("a.car_no","%"+carNo+"%");
+ }
+ IPage<Car> data = iCarService.page2(PageUtil.initMpPage(page),wrapper);
+ return new ResultUtil<IPage<Car>>().setData(data);
+ }
+
+ @RequestMapping(value = "/insertOrUpdate", method = RequestMethod.POST)
+ @ApiOperation(value = "缂栬緫鎴栨洿鏂版暟鎹�")
+ public Result<Car> saveOrUpdate(Car car) {
+
+ QueryWrapper<Car> wrapper = new QueryWrapper<>();
+ QueryWrapper<Car> wrapper1 = new QueryWrapper<>();
+ if (!car.getUserId().equals("")){
+ wrapper.eq("user_id",car.getUserId());
+ Car car1 = iCarService.getOne(wrapper);
+ if (car1!=null && !car1.getId().equals(car.getId())){
+ return new ResultUtil<Car>().setErrorMsg("璇ラ┚椹跺憳宸茶鍏朵粬杞﹁締缁戝畾,璇峰厛瑙g粦");
+ }
+ }
+
+ if (!car.getFollowUserId().equals("")){
+ wrapper1.eq("follow_user_id",car.getFollowUserId());
+ Car car1 = iCarService.getOne(wrapper1);
+ if (car1!=null && !car1.getId().equals(car.getId())){
+ return new ResultUtil<Car>().setErrorMsg("璇ラ厤閫佸憳宸茶鍏朵粬杞﹁締缁戝畾,璇峰厛瑙g粦");
+ }
+ }
+
+ if (iCarService.saveOrUpdate(car)) {
+ return new ResultUtil<Car>().setData(car);
+ }
+
+ return new ResultUtil<Car>().setErrorMsg("鎿嶄綔澶辫触");
+ }
+
+ @RequestMapping(value = "/bindCar", method = RequestMethod.POST)
+ @ApiOperation(value = "缁戝畾杞﹁締浜哄憳")
+ public Result<Car> bindCar(String carId,String userId) {//A杞﹀紶涓� 鏉庡洓 B杞︾帇浜旓紝璧靛叚
+ User user = securityUtil.getCurrUser();
+ QueryWrapper<Car> queryWrapper = new QueryWrapper<>();
+ queryWrapper.eq("user_id",user.getId()).or().eq("follow_user_id",user.getId());
+ Car one = iCarService.getOne(queryWrapper);//鍘熸潵鐨勮溅
+
+ if(one!=null){
+ //濡傛灉杩樻槸閫変簡鍘熸潵鐨勮溅鍒欎笉鐢ㄥ彉
+ if(one.getId().equals(carId)){
+
+ }else{
+ //濡傛灉閫変簡鍙︿竴杈嗚溅锛屽厛鎶婂師鏉ョ殑杞︾殑浜哄憳娓呯┖
+ if(user.getType2()==0){
+ one.setUserId("");
+ }else{
+ one.setFollowUserId("");
+ }
+ iCarService.saveOrUpdate(one);
+
+ //缁戝畾涓婃柊閫夌殑杞�
+ Car car = iCarService.getById(carId);
+ if(car!=null){
+ if(user.getType2()==0){
+ car.setUserId(user.getId());
+ }else{
+ car.setFollowUserId(user.getId());
+ }
+ iCarService.saveOrUpdate(car);
+ }
+ }
+ }else{
+ Car car = iCarService.getById(carId);
+ if(car!=null){
+ if(user.getType2()==0){
+ car.setUserId(user.getId());
+ }else{
+ car.setFollowUserId(user.getId());
+ }
+ iCarService.saveOrUpdate(car);
+ }
+ }
+ return ResultUtil.success("缁戝畾鎴愬姛");
+ }
+
+ @RequestMapping(value = "/delByIds", method = RequestMethod.POST)
+ @ApiOperation(value = "鎵归噺閫氳繃id鍒犻櫎")
+ public Result<Object> delAllByIds(@RequestParam String[] ids) {
+
+ for (String id : ids) {
+ iCarService.removeById(id);
+ }
+ return ResultUtil.success("鎵归噺閫氳繃id鍒犻櫎鏁版嵁鎴愬姛");
+ }
+}
--
Gitblit v1.9.1