whywhyo
2023-10-06 bd0871adf2e072aef8176f1e71a8cb89f28a544b
47813468
22个文件已添加
2 文件已重命名
951 ■■■■■ 已修改文件
generate/src/main/java/com/ojq/controller/TravelCountController.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
generate/src/main/java/com/ojq/controller/TravelDetailController.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
generate/src/main/java/com/ojq/domain/TravelCount.java 105 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
generate/src/main/java/com/ojq/domain/TravelDetail.java 95 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
generate/src/main/java/com/ojq/mapper/TravelCountMapper.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
generate/src/main/java/com/ojq/mapper/TravelDetailMapper.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
generate/src/main/java/com/ojq/service/ITravelCountService.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
generate/src/main/java/com/ojq/service/ITravelDetailService.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
generate/src/main/java/com/ojq/service/impl/TravelCountServiceImpl.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
generate/src/main/java/com/ojq/service/impl/TravelDetailServiceImpl.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
generate/src/main/resources/mapper/TravelDetailMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
generate/src/main/resources/mapper/TravelDetailService.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/TravelCountController.java 124 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/TravelDetailController.java 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-generator/src/main/resources/mapper/generator/TravelDetailService.xml 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-quartz/src/main/resources/mapper/quartz/TravelDetailService.xml 补丁 | 查看 | 原始文档 | blame | 历史
zhang-content/src/main/java/com/ruoyi/domain/TravelCount.java 109 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhang-content/src/main/java/com/ruoyi/domain/TravelDetail.java 99 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhang-content/src/main/java/com/ruoyi/mapper/TravelCountMapper.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhang-content/src/main/java/com/ruoyi/mapper/TravelDetailMapper.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhang-content/src/main/java/com/ruoyi/service/TravelCountService.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhang-content/src/main/java/com/ruoyi/service/TravelDetailService.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhang-content/src/main/java/com/ruoyi/service/impl/TravelCountServiceImpl.java 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhang-content/src/main/java/com/ruoyi/service/impl/TravelDetailServiceImpl.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
generate/src/main/java/com/ojq/controller/TravelCountController.java
New file
@@ -0,0 +1,20 @@
package com.ojq.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
 * <p>
 *  前端控制器
 * </p>
 *
 * @author ojq
 * @since 2023-10-06
 */
@RestController
@RequestMapping("/travel-count")
public class TravelCountController {
}
generate/src/main/java/com/ojq/controller/TravelDetailController.java
New file
@@ -0,0 +1,20 @@
package com.ojq.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
 * <p>
 *  前端控制器
 * </p>
 *
 * @author ojq
 * @since 2023-10-06
 */
@RestController
@RequestMapping("/travel-detail")
public class TravelDetailController {
}
generate/src/main/java/com/ojq/domain/TravelCount.java
New file
@@ -0,0 +1,105 @@
package com.ojq.domain;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
 * <p>
 *
 * </p>
 *
 * @author ojq
 * @since 2023-10-06
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("travel_count")
public class TravelCount implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
     * 主键
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    /**
     * 所属用户id
     */
    private Long uid;
    /**
     * 旅游名称
     */
    private String name;
    /**
     * 旅游去向
     */
    private String destination;
    /**
     * 旅游开始时间
     */
    private LocalDateTime startTime;
    /**
     * 旅游结束时间
     */
    private LocalDateTime endTime;
    /**
     * 旅游性质
     */
    private String property;
    /**
     * 旅游方式
     */
    private String manner;
    /**
     * 共计门票费
     */
    private String entranceTotal;
    /**
     * 共计交通费
     */
    private String travelTotal;
    /**
     * 共计住宿费
     */
    private String stayTotal;
    /**
     * 共计餐费
     */
    private String eatTotal;
    /**
     * 共计团费
     */
    private String groupTotal;
    /**
     * 总额
     */
    private String totalPrice;
    /**
     * 创建时间
     */
    private LocalDateTime createTime;
}
generate/src/main/java/com/ojq/domain/TravelDetail.java
New file
@@ -0,0 +1,95 @@
package com.ojq.domain;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
 * <p>
 *
 * </p>
 *
 * @author ojq
 * @since 2023-10-06
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("travel_detail")
public class TravelDetail implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
     * 主键id
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    /**
     * 对应的统计表的id
     */
    private Long cid;
    /**
     * 行程时间
     */
    private LocalDateTime happenDate;
    /**
     * 行程地点
     */
    private String address;
    /**
     * 门票费
     */
    private String entrance;
    /**
     * 住宿酒店
     */
    private String hotel;
    /**
     * 住宿费用
     */
    private String stay;
    /**
     * 餐费
     */
    private String eat;
    /**
     * 交通费
     */
    private String travel;
    /**
     * 电子文件路径
     */
    private String url;
    /**
     * 出行方式
     */
    private String travelMode;
    /**
     * 车次/航班
     */
    private String flight;
    /**
     * 使用证件
     */
    private String document;
}
generate/src/main/java/com/ojq/mapper/TravelCountMapper.java
New file
@@ -0,0 +1,16 @@
package com.ojq.mapper;
import com.ojq.domain.TravelCount;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
 * <p>
 *  Mapper 接口
 * </p>
 *
 * @author ojq
 * @since 2023-10-06
 */
public interface TravelCountMapper extends BaseMapper<TravelCount> {
}
generate/src/main/java/com/ojq/mapper/TravelDetailMapper.java
New file
@@ -0,0 +1,16 @@
package com.ojq.mapper;
import com.ojq.domain.TravelDetail;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
 * <p>
 *  Mapper 接口
 * </p>
 *
 * @author ojq
 * @since 2023-10-06
 */
public interface TravelDetailMapper extends BaseMapper<TravelDetail> {
}
generate/src/main/java/com/ojq/service/ITravelCountService.java
New file
@@ -0,0 +1,16 @@
package com.ojq.service;
import com.ojq.domain.TravelCount;
import com.baomidou.mybatisplus.extension.service.IService;
/**
 * <p>
 *  服务类
 * </p>
 *
 * @author ojq
 * @since 2023-10-06
 */
public interface ITravelCountService extends IService<TravelCount> {
}
generate/src/main/java/com/ojq/service/ITravelDetailService.java
New file
@@ -0,0 +1,16 @@
package com.ojq.service;
import com.ojq.domain.TravelDetail;
import com.baomidou.mybatisplus.extension.service.IService;
/**
 * <p>
 *  服务类
 * </p>
 *
 * @author ojq
 * @since 2023-10-06
 */
public interface ITravelDetailService extends IService<TravelDetail> {
}
generate/src/main/java/com/ojq/service/impl/TravelCountServiceImpl.java
New file
@@ -0,0 +1,20 @@
package com.ojq.service.impl;
import com.ojq.domain.TravelCount;
import com.ojq.mapper.TravelCountMapper;
import com.ojq.service.ITravelCountService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
 * <p>
 *  服务实现类
 * </p>
 *
 * @author ojq
 * @since 2023-10-06
 */
@Service
public class TravelCountServiceImpl extends ServiceImpl<TravelCountMapper, TravelCount> implements ITravelCountService {
}
generate/src/main/java/com/ojq/service/impl/TravelDetailServiceImpl.java
New file
@@ -0,0 +1,20 @@
package com.ojq.service.impl;
import com.ojq.domain.TravelDetail;
import com.ojq.mapper.TravelDetailMapper;
import com.ojq.service.ITravelDetailService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
 * <p>
 *  服务实现类
 * </p>
 *
 * @author ojq
 * @since 2023-10-06
 */
@Service
public class TravelDetailServiceImpl extends ServiceImpl<TravelDetailMapper, TravelDetail> implements ITravelDetailService {
}
generate/src/main/resources/mapper/TravelDetailMapper.xml
New file
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ojq.mapper.TravelDetailMapper">
</mapper>
generate/src/main/resources/mapper/TravelDetailService.xml
New file
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ojq.mapper.TravelCountMapper">
</mapper>
ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/TravelCountController.java
New file
@@ -0,0 +1,124 @@
package com.ruoyi.web.controller.zhang;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.core.text.Convert;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.ServletUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.domain.TravelCount;
import com.ruoyi.service.TravelCountService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.util.Arrays;
import java.util.List;
import static com.ruoyi.common.core.page.TableSupport.PAGE_NUM;
import static com.ruoyi.common.core.page.TableSupport.PAGE_SIZE;
/**
 * <p>
 *  前端控制器
 * </p>
 *
 * @author ojq
 * @since 2023-10-06
 */
@RestController
@RequestMapping("/travel/count")
public class TravelCountController {
    @Autowired
    private TravelCountService travelCountService;
    @GetMapping("/all")
    public AjaxResult listAll(){
        SysUser user = SecurityUtils.getLoginUser().getUser();
        Long userId = user.getUserId();
        Integer pageNum = Convert.toInt(ServletUtils.getParameter(PAGE_NUM), 1);
        Integer pageSize = Convert.toInt(ServletUtils.getParameter(PAGE_SIZE), 10);
        return travelCountService.selectDataList(userId,pageNum,pageSize);
    }
//    /**
//     * 导出旅游统计情况记录列表
//     */
////    @PreAuthorize("@ss.hasPermi('system:property:export')")
//    @Log(title = "旅游统计情况记录", businessType = BusinessType.EXPORT)
//    @PostMapping("/export")
//    public void export(HttpServletResponse response, TravelCount travelCount)
//    {
//        SysUser user = SecurityUtils.getLoginUser().getUser();
//        Long userId = user.getUserId();
//
//        List<TravelCount> list = travelCountService.selectExperienceList(userId);
//        log.info("导出记录为:{}",list);
//        ExcelUtil<TravelCount> util = new ExcelUtil<>(TravelCount.class);
//        util.exportExcel(response, list, "旅游统计情况记录数据");
//    }
////
//
//    /**
//     * 导入旅游统计情况记录列表
//     */
//    @Log(title = "用户管理", businessType = BusinessType.IMPORT)
//    @PostMapping("/importData")
//    public AjaxResult importData(@RequestParam("excelImport") MultipartFile file) throws Exception
//    {
//        SysUser user = SecurityUtils.getLoginUser().getUser();
//        Long userId = user.getUserId();
//
//        boolean flag=travelCountService.importExcel(file,userId);
//        if(flag){
//            return AjaxResult.success("导入数据成功");
//        }
//        return AjaxResult.error("导入数据失败");
//    }
    /**
     * 新增旅游统计情况记录
     */
//    @PreAuthorize("@ss.hasPermi('system:property:add')")
    @Log(title = "旅游统计情况记录", businessType = BusinessType.INSERT)
    @PostMapping
    public AjaxResult add(@RequestBody TravelCount travelCount)
    {
        SysUser user = SecurityUtils.getLoginUser().getUser();
        Long userId = user.getUserId();
        travelCount.setUid(userId);
        travelCountService.save(travelCount);
        return AjaxResult.success();
    }
    /**
     * 修改旅游统计情况记录
     */
//    @PreAuthorize("@ss.hasPermi('system:property:edit')")
    @Log(title = "旅游统计情况记录", businessType = BusinessType.UPDATE)
    @PutMapping
    public AjaxResult edit(@RequestBody TravelCount travelCount)
    {
        travelCountService.updateById(travelCount);
        return AjaxResult.success();
    }
//
    /**
     * 批量删除旅游统计情况记录
     */
//    @PreAuthorize("@ss.hasPermi('system:property:remove')")
    @Log(title = "旅游统计情况记录", businessType = BusinessType.DELETE)
    @DeleteMapping("/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids)
    {
        travelCountService.removeData(Arrays.asList(ids));
        return AjaxResult.success();
    }
}
ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/TravelDetailController.java
New file
@@ -0,0 +1,54 @@
package com.ruoyi.web.controller.zhang;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.domain.TravelDetail;
import com.ruoyi.service.TravelDetailService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.websocket.server.PathParam;
import java.util.Arrays;
import java.util.List;
/**
 * <p>
 *  前端控制器
 * </p>
 *
 * @author ojq
 * @since 2023-10-06
 */
@RestController
@RequestMapping("/travel/detail")
public class TravelDetailController {
    @Autowired
    TravelDetailService travelDetailService;
    @GetMapping()
     public AjaxResult getDataByCid(@PathParam("cid") Long cid){
        List<TravelDetail> travelDetailList = travelDetailService.getDataByCid(cid);
        return AjaxResult.success(travelDetailList);
    }
    @PostMapping()
    public AjaxResult addData(@RequestBody TravelDetail travelDetail){
        travelDetailService.save(travelDetail);
        return AjaxResult.success();
    }
    @PutMapping()
    public AjaxResult updateData(@RequestBody TravelDetail travelDetail){
        travelDetailService.updateById(travelDetail);
        return AjaxResult.success();
    }
    @DeleteMapping("/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids)
    {
        travelDetailService.removeByIds(Arrays.asList(ids));
        return AjaxResult.success();
    }
}
ruoyi-generator/src/main/resources/mapper/generator/TravelDetailService.xml
ruoyi-quartz/src/main/resources/mapper/quartz/TravelDetailService.xml
zhang-content/src/main/java/com/ruoyi/domain/TravelCount.java
New file
@@ -0,0 +1,109 @@
package com.ruoyi.domain;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import java.io.Serializable;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
 * <p>
 *
 * </p>
 *
 * @author ojq
 * @since 2023-10-06
 */
@Data
@TableName("travel_count")
public class TravelCount implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
     * 主键
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    /**
     * 所属用户id
     */
    private Long uid;
    /**
     * 旅游名称
     */
    private String name;
    /**
     * 旅游去向
     */
    private String destination;
    /**
     * 旅游开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date startTime;
    /**
     * 旅游结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date endTime;
    /**
     * 旅游性质
     */
    private String property;
    /**
     * 旅游方式
     */
    private String manner;
    /**
     * 共计门票费
     */
    private Double entranceTotal;
    /**
     * 共计交通费
     */
    private Double travelTotal;
    /**
     * 共计住宿费
     */
    private Double stayTotal;
    /**
     * 共计餐费
     */
    private Double eatTotal;
    /**
     * 共计团费
     */
    private Double groupTotal;
    /**
     * 总额
     */
    private Double totalPrice;
    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date createTime;
}
zhang-content/src/main/java/com/ruoyi/domain/TravelDetail.java
New file
@@ -0,0 +1,99 @@
package com.ruoyi.domain;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import java.io.Serializable;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
 * <p>
 *
 * </p>
 *
 * @author ojq
 * @since 2023-10-06
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("travel_detail")
public class TravelDetail implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
     * 主键id
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    /**
     * 对应的统计表的id
     */
    private Long cid;
    /**
     * 行程时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date happenDate;
    /**
     * 行程地点
     */
    private String address;
    /**
     * 门票费
     */
    private Double entrance;
    /**
     * 住宿酒店
     */
    private String hotel;
    /**
     * 住宿费用
     */
    private Double stay;
    /**
     * 餐费
     */
    private Double eat;
    /**
     * 交通费
     */
    private Double travel;
    /**
     * 电子文件路径
     */
    private String url;
    /**
     * 出行方式
     */
    private String travelMode;
    /**
     * 车次/航班
     */
    private String flight;
    /**
     * 使用证件
     */
    private String document;
}
zhang-content/src/main/java/com/ruoyi/mapper/TravelCountMapper.java
New file
@@ -0,0 +1,19 @@
package com.ruoyi.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.domain.TravelCount;
import org.apache.ibatis.annotations.Mapper;
/**
 * <p>
 *  Mapper 接口
 * </p>
 *
 * @author ojq
 * @since 2023-10-06
 */
@Mapper
public interface TravelCountMapper extends BaseMapper<TravelCount> {
}
zhang-content/src/main/java/com/ruoyi/mapper/TravelDetailMapper.java
New file
@@ -0,0 +1,19 @@
package com.ruoyi.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.domain.TravelDetail;
import org.apache.ibatis.annotations.Mapper;
/**
 * <p>
 *  Mapper 接口
 * </p>
 *
 * @author ojq
 * @since 2023-10-06
 */
@Mapper
public interface TravelDetailMapper extends BaseMapper<TravelDetail> {
}
zhang-content/src/main/java/com/ruoyi/service/TravelCountService.java
New file
@@ -0,0 +1,23 @@
package com.ruoyi.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.domain.TravelCount;
import java.util.List;
/**
 * <p>
 *  服务类
 * </p>
 *
 * @author ojq
 * @since 2023-10-06
 */
public interface TravelCountService extends IService<TravelCount> {
    AjaxResult selectDataList(Long userId, Integer pageNum, Integer pageSize);
    void removeData(List<Long> list);
}
zhang-content/src/main/java/com/ruoyi/service/TravelDetailService.java
New file
@@ -0,0 +1,23 @@
package com.ruoyi.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.domain.TravelDetail;
import java.util.List;
/**
 * <p>
 *  服务类
 * </p>
 *
 * @author ojq
 * @since 2023-10-06
 */
public interface TravelDetailService extends IService<TravelDetail> {
    List<TravelDetail> getDataByCid(Long cid);
    void removeBatchByCid(List<Long> cid);
}
zhang-content/src/main/java/com/ruoyi/service/impl/TravelCountServiceImpl.java
New file
@@ -0,0 +1,86 @@
package com.ruoyi.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.utils.MapUtils;
import com.ruoyi.domain.TravelCount;
import com.ruoyi.domain.TravelDetail;
import com.ruoyi.mapper.TravelCountMapper;
import com.ruoyi.service.TravelCountService;
import com.ruoyi.service.TravelDetailService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.text.DecimalFormat;
import java.util.List;
/**
 * <p>
 *  服务实现类
 * </p>
 *
 * @author ojq
 * @since 2023-10-06
 */
@Service
public class TravelCountServiceImpl extends ServiceImpl<TravelCountMapper, TravelCount> implements TravelCountService {
    @Autowired
    private TravelDetailService travelDetailService;
    @Autowired
    private TravelCountService travelCountService;
    @Override
    public AjaxResult selectDataList(Long userId, Integer pageNum, Integer pageSize) {
        LambdaQueryWrapper<TravelCount> lqw = new LambdaQueryWrapper<>();
        lqw.eq(TravelCount::getUid,userId);
        Page<TravelCount> resultPage = page(new Page<>(pageNum, pageSize), lqw);
        resultPage.getRecords().forEach(data ->{
            //先找到对应一条统计数据的所有详细数据
            List<TravelDetail> travelDetailList = travelDetailService.getDataByCid(data.getId());
            double entranceTotal = 0;
            double eatTotal = 0;
            double stayTotal = 0;
            double travelTotal = 0;
            //把所有详细数据的费用值累加起来
            for (TravelDetail detail : travelDetailList) {
                entranceTotal+=detail.getEntrance();
                eatTotal+=detail.getEat();
                stayTotal+=detail.getStay();
                travelTotal+=detail.getTravel();
            }
            data.setEntranceTotal(entranceTotal);
            data.setEatTotal(eatTotal);
            data.setStayTotal(stayTotal);
            data.setTravelTotal(travelTotal);
            DecimalFormat df = new DecimalFormat("0.00");
            data.setTotalPrice(Double.parseDouble(df.format(entranceTotal+eatTotal+data.getGroupTotal()+stayTotal+travelTotal)));
        });
        return AjaxResult.success(MapUtils.getResult(resultPage));
    }
    /**
     * 批量删除统计表数据
     */
    @Override
    @Transactional
    public void removeData(List<Long> list) {
        //在删除统计表数据之前,要先删除明细表的数据
        travelDetailService.removeBatchByCid(list);
        //再删除自己表的数据
        travelCountService.removeBatchByIds(list);
    }
}
zhang-content/src/main/java/com/ruoyi/service/impl/TravelDetailServiceImpl.java
New file
@@ -0,0 +1,41 @@
package com.ruoyi.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.domain.TravelDetail;
import com.ruoyi.mapper.TravelDetailMapper;
import com.ruoyi.service.TravelDetailService;
import org.springframework.stereotype.Service;
import java.util.List;
/**
 * <p>
 *  服务实现类
 * </p>
 *
 * @author ojq
 * @since 2023-10-06
 */
@Service
public class TravelDetailServiceImpl extends ServiceImpl<TravelDetailMapper, TravelDetail> implements TravelDetailService {
    @Override
    public List<TravelDetail> getDataByCid(Long cid) {
        LambdaQueryWrapper<TravelDetail> lqw = new LambdaQueryWrapper<>();
        lqw.eq(TravelDetail::getCid,cid);
        lqw.orderBy(true,true,TravelDetail::getHappenDate);
        return list(lqw);
    }
    @Override
    public void removeBatchByCid(List<Long> cid) {
        for (Long c : cid) {
            LambdaQueryWrapper<TravelDetail> lqw = new LambdaQueryWrapper<>();
            lqw.eq(TravelDetail::getCid,c);
            remove(lqw);
        }
    }
}