From bd0871adf2e072aef8176f1e71a8cb89f28a544b Mon Sep 17 00:00:00 2001
From: whywhyo <1511349576@qq.com>
Date: 星期五, 06 十月 2023 22:24:04 +0800
Subject: [PATCH] 47813468

---
 zhang-content/src/main/java/com/ruoyi/mapper/TravelDetailMapper.java                 |   19 +
 generate/src/main/java/com/ojq/controller/TravelDetailController.java                |   20 +
 generate/src/main/java/com/ojq/mapper/TravelDetailMapper.java                        |   16 +
 ruoyi-generator/src/main/resources/mapper/generator/TravelDetailService.xml          |    0 
 zhang-content/src/main/java/com/ruoyi/service/TravelCountService.java                |   23 +
 zhang-content/src/main/java/com/ruoyi/service/TravelDetailService.java               |   23 +
 generate/src/main/java/com/ojq/mapper/TravelCountMapper.java                         |   16 +
 generate/src/main/java/com/ojq/controller/TravelCountController.java                 |   20 +
 ruoyi-quartz/src/main/resources/mapper/quartz/TravelDetailService.xml                |    0 
 generate/src/main/java/com/ojq/domain/TravelCount.java                               |  105 ++++++
 zhang-content/src/main/java/com/ruoyi/domain/TravelCount.java                        |  109 ++++++
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/TravelCountController.java  |  124 +++++++
 generate/src/main/java/com/ojq/service/impl/TravelDetailServiceImpl.java             |   20 +
 zhang-content/src/main/java/com/ruoyi/service/impl/TravelCountServiceImpl.java       |   86 +++++
 generate/src/main/java/com/ojq/service/ITravelDetailService.java                     |   16 +
 generate/src/main/java/com/ojq/service/ITravelCountService.java                      |   16 +
 zhang-content/src/main/java/com/ruoyi/domain/TravelDetail.java                       |   99 ++++++
 generate/src/main/java/com/ojq/domain/TravelDetail.java                              |   95 +++++
 generate/src/main/resources/mapper/TravelDetailMapper.xml                            |    5 
 generate/src/main/java/com/ojq/service/impl/TravelCountServiceImpl.java              |   20 +
 zhang-content/src/main/java/com/ruoyi/service/impl/TravelDetailServiceImpl.java      |   41 ++
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/TravelDetailController.java |   54 +++
 generate/src/main/resources/mapper/TravelDetailService.xml                           |    5 
 zhang-content/src/main/java/com/ruoyi/mapper/TravelCountMapper.java                  |   19 +
 24 files changed, 951 insertions(+), 0 deletions(-)

diff --git a/generate/src/main/java/com/ojq/controller/TravelCountController.java b/generate/src/main/java/com/ojq/controller/TravelCountController.java
new file mode 100644
index 0000000..28a5141
--- /dev/null
+++ b/generate/src/main/java/com/ojq/controller/TravelCountController.java
@@ -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 {
+
+}
diff --git a/generate/src/main/java/com/ojq/controller/TravelDetailController.java b/generate/src/main/java/com/ojq/controller/TravelDetailController.java
new file mode 100644
index 0000000..3bbc4fe
--- /dev/null
+++ b/generate/src/main/java/com/ojq/controller/TravelDetailController.java
@@ -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 {
+
+}
diff --git a/generate/src/main/java/com/ojq/domain/TravelCount.java b/generate/src/main/java/com/ojq/domain/TravelCount.java
new file mode 100644
index 0000000..e151a19
--- /dev/null
+++ b/generate/src/main/java/com/ojq/domain/TravelCount.java
@@ -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;
+
+    /**
+     * 鎵�灞炵敤鎴穒d
+     */
+    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;
+
+
+}
diff --git a/generate/src/main/java/com/ojq/domain/TravelDetail.java b/generate/src/main/java/com/ojq/domain/TravelDetail.java
new file mode 100644
index 0000000..31a1f02
--- /dev/null
+++ b/generate/src/main/java/com/ojq/domain/TravelDetail.java
@@ -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;
+
+    /**
+     * 瀵瑰簲鐨勭粺璁¤〃鐨刬d
+     */
+    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;
+
+
+}
diff --git a/generate/src/main/java/com/ojq/mapper/TravelCountMapper.java b/generate/src/main/java/com/ojq/mapper/TravelCountMapper.java
new file mode 100644
index 0000000..3314e0f
--- /dev/null
+++ b/generate/src/main/java/com/ojq/mapper/TravelCountMapper.java
@@ -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> {
+
+}
diff --git a/generate/src/main/java/com/ojq/mapper/TravelDetailMapper.java b/generate/src/main/java/com/ojq/mapper/TravelDetailMapper.java
new file mode 100644
index 0000000..2e73e70
--- /dev/null
+++ b/generate/src/main/java/com/ojq/mapper/TravelDetailMapper.java
@@ -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> {
+
+}
diff --git a/generate/src/main/java/com/ojq/service/ITravelCountService.java b/generate/src/main/java/com/ojq/service/ITravelCountService.java
new file mode 100644
index 0000000..9cbc470
--- /dev/null
+++ b/generate/src/main/java/com/ojq/service/ITravelCountService.java
@@ -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> {
+
+}
diff --git a/generate/src/main/java/com/ojq/service/ITravelDetailService.java b/generate/src/main/java/com/ojq/service/ITravelDetailService.java
new file mode 100644
index 0000000..4b05d3f
--- /dev/null
+++ b/generate/src/main/java/com/ojq/service/ITravelDetailService.java
@@ -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> {
+
+}
diff --git a/generate/src/main/java/com/ojq/service/impl/TravelCountServiceImpl.java b/generate/src/main/java/com/ojq/service/impl/TravelCountServiceImpl.java
new file mode 100644
index 0000000..4b6d801
--- /dev/null
+++ b/generate/src/main/java/com/ojq/service/impl/TravelCountServiceImpl.java
@@ -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 {
+
+}
diff --git a/generate/src/main/java/com/ojq/service/impl/TravelDetailServiceImpl.java b/generate/src/main/java/com/ojq/service/impl/TravelDetailServiceImpl.java
new file mode 100644
index 0000000..26910a6
--- /dev/null
+++ b/generate/src/main/java/com/ojq/service/impl/TravelDetailServiceImpl.java
@@ -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 {
+
+}
diff --git a/generate/src/main/resources/mapper/TravelDetailMapper.xml b/generate/src/main/resources/mapper/TravelDetailMapper.xml
new file mode 100644
index 0000000..f5d5c1b
--- /dev/null
+++ b/generate/src/main/resources/mapper/TravelDetailMapper.xml
@@ -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>
diff --git a/generate/src/main/resources/mapper/TravelDetailService.xml b/generate/src/main/resources/mapper/TravelDetailService.xml
new file mode 100644
index 0000000..0402f8d
--- /dev/null
+++ b/generate/src/main/resources/mapper/TravelDetailService.xml
@@ -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>
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/TravelCountController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/TravelCountController.java
new file mode 100644
index 0000000..16a3c10
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/TravelCountController.java
@@ -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();
+    }
+
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/TravelDetailController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/TravelDetailController.java
new file mode 100644
index 0000000..22fa10d
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/TravelDetailController.java
@@ -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();
+    }
+
+}
diff --git a/ruoyi-generator/src/main/resources/mapper/generator/GenTableColumnMapper.xml b/ruoyi-generator/src/main/resources/mapper/generator/TravelDetailService.xml
similarity index 100%
rename from ruoyi-generator/src/main/resources/mapper/generator/GenTableColumnMapper.xml
rename to ruoyi-generator/src/main/resources/mapper/generator/TravelDetailService.xml
diff --git a/ruoyi-quartz/src/main/resources/mapper/quartz/SysJobLogMapper.xml b/ruoyi-quartz/src/main/resources/mapper/quartz/TravelDetailService.xml
similarity index 100%
rename from ruoyi-quartz/src/main/resources/mapper/quartz/SysJobLogMapper.xml
rename to ruoyi-quartz/src/main/resources/mapper/quartz/TravelDetailService.xml
diff --git a/zhang-content/src/main/java/com/ruoyi/domain/TravelCount.java b/zhang-content/src/main/java/com/ruoyi/domain/TravelCount.java
new file mode 100644
index 0000000..706d8c7
--- /dev/null
+++ b/zhang-content/src/main/java/com/ruoyi/domain/TravelCount.java
@@ -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;
+
+    /**
+     * 鎵�灞炵敤鎴穒d
+     */
+    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;
+
+
+}
diff --git a/zhang-content/src/main/java/com/ruoyi/domain/TravelDetail.java b/zhang-content/src/main/java/com/ruoyi/domain/TravelDetail.java
new file mode 100644
index 0000000..c015d84
--- /dev/null
+++ b/zhang-content/src/main/java/com/ruoyi/domain/TravelDetail.java
@@ -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;
+
+    /**
+     * 瀵瑰簲鐨勭粺璁¤〃鐨刬d
+     */
+    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;
+
+
+}
diff --git a/zhang-content/src/main/java/com/ruoyi/mapper/TravelCountMapper.java b/zhang-content/src/main/java/com/ruoyi/mapper/TravelCountMapper.java
new file mode 100644
index 0000000..0df3adf
--- /dev/null
+++ b/zhang-content/src/main/java/com/ruoyi/mapper/TravelCountMapper.java
@@ -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> {
+
+}
diff --git a/zhang-content/src/main/java/com/ruoyi/mapper/TravelDetailMapper.java b/zhang-content/src/main/java/com/ruoyi/mapper/TravelDetailMapper.java
new file mode 100644
index 0000000..5df8a19
--- /dev/null
+++ b/zhang-content/src/main/java/com/ruoyi/mapper/TravelDetailMapper.java
@@ -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> {
+
+}
diff --git a/zhang-content/src/main/java/com/ruoyi/service/TravelCountService.java b/zhang-content/src/main/java/com/ruoyi/service/TravelCountService.java
new file mode 100644
index 0000000..4e04b75
--- /dev/null
+++ b/zhang-content/src/main/java/com/ruoyi/service/TravelCountService.java
@@ -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);
+}
diff --git a/zhang-content/src/main/java/com/ruoyi/service/TravelDetailService.java b/zhang-content/src/main/java/com/ruoyi/service/TravelDetailService.java
new file mode 100644
index 0000000..4f3e685
--- /dev/null
+++ b/zhang-content/src/main/java/com/ruoyi/service/TravelDetailService.java
@@ -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);
+
+}
diff --git a/zhang-content/src/main/java/com/ruoyi/service/impl/TravelCountServiceImpl.java b/zhang-content/src/main/java/com/ruoyi/service/impl/TravelCountServiceImpl.java
new file mode 100644
index 0000000..e8a3c85
--- /dev/null
+++ b/zhang-content/src/main/java/com/ruoyi/service/impl/TravelCountServiceImpl.java
@@ -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);
+    }
+}
diff --git a/zhang-content/src/main/java/com/ruoyi/service/impl/TravelDetailServiceImpl.java b/zhang-content/src/main/java/com/ruoyi/service/impl/TravelDetailServiceImpl.java
new file mode 100644
index 0000000..1d2df06
--- /dev/null
+++ b/zhang-content/src/main/java/com/ruoyi/service/impl/TravelDetailServiceImpl.java
@@ -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);
+        }
+
+    }
+}

--
Gitblit v1.9.1