liukangdong
2024-05-20 39ddb6cdeefad6489e79cd49dfa94fdaf359dcdc
Merge branch 'master' of http://139.186.142.91:10010/r/productDev/dmvisit
已添加2个文件
已删除6个文件
已修改49个文件
1227 ■■■■ 文件已修改
admin/package-lock.json 160 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/business/OperaInternalCompanyWindow.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/visitorSources.vue 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_service/src/main/java/com/doumee/config/cloudfilter/CloudWebConfig.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_service/src/main/java/com/doumee/config/cloudfilter/CustomHttpServletRequestWrapper.java 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_service/src/main/java/com/doumee/config/cloudfilter/LoginHandlerInterceptor.java 123 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_service/src/main/java/com/doumee/config/cloudfilter/RequestWrapperFilter.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/CarBookController.java 82 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/CarDriverController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/CarBookCloudController.java 84 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/CarDriverCloudController.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/CarBookMapper.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/CarDriverMapper.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/CarUseBookMapper.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Approve.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/ApproveParam.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/ApproveTempl.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/CarBook.java 111 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/CarDriver.java 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/CarEvent.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/CarParks.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/CarUseBook.java 37 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Cars.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Device.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/DeviceEvent.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Empower.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/FormParam.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/HiddenDanger.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/HiddenDangerLog.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/HiddenDangerParam.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/InterfaceLog.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/ParkBook.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Parks.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Platform.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformGroup.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformInterfaceLog.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformJob.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformLog.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformQueue.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformShowParam.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/ProblemLog.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Problems.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Retention.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Tasks.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/TrainTime.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/UserAction.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/VisitEvent.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/VisitPark.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/VisitProblemLog.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/VisitProblems.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Visitor.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Visits.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/CarBookService.java 97 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/CarDriverService.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarBookServiceImpl.java 135 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarDriverServiceImpl.java 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarUseBookServiceImpl.java 47 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/package-lock.json
@@ -1876,6 +1876,63 @@
          "integrity": "sha1-/q7SVZc9LndVW4PbwIhRpsY1IPo=",
          "dev": true
        },
        "ansi-styles": {
          "version": "4.3.0",
          "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
          "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
          "dev": true,
          "optional": true,
          "requires": {
            "color-convert": "^2.0.1"
          }
        },
        "chalk": {
          "version": "4.1.2",
          "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz",
          "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
          "dev": true,
          "optional": true,
          "requires": {
            "ansi-styles": "^4.1.0",
            "supports-color": "^7.1.0"
          }
        },
        "color-convert": {
          "version": "2.0.1",
          "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
          "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
          "dev": true,
          "optional": true,
          "requires": {
            "color-name": "~1.1.4"
          }
        },
        "color-name": {
          "version": "1.1.4",
          "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
          "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
          "dev": true,
          "optional": true
        },
        "has-flag": {
          "version": "4.0.0",
          "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz",
          "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
          "dev": true,
          "optional": true
        },
        "loader-utils": {
          "version": "2.0.4",
          "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-2.0.4.tgz",
          "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==",
          "dev": true,
          "optional": true,
          "requires": {
            "big.js": "^5.2.2",
            "emojis-list": "^3.0.0",
            "json5": "^2.1.2"
          }
        },
        "ssri": {
          "version": "8.0.1",
          "resolved": "https://registry.npm.taobao.org/ssri/download/ssri-8.0.1.tgz?cache=0&sync_timestamp=1617826515595&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fssri%2Fdownload%2Fssri-8.0.1.tgz",
@@ -1883,6 +1940,28 @@
          "dev": true,
          "requires": {
            "minipass": "^3.1.1"
          }
        },
        "supports-color": {
          "version": "7.2.0",
          "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz",
          "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
          "dev": true,
          "optional": true,
          "requires": {
            "has-flag": "^4.0.0"
          }
        },
        "vue-loader-v16": {
          "version": "npm:vue-loader@16.8.3",
          "resolved": "https://registry.npmmirror.com/vue-loader/-/vue-loader-16.8.3.tgz",
          "integrity": "sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA==",
          "dev": true,
          "optional": true,
          "requires": {
            "chalk": "^4.1.0",
            "hash-sum": "^2.0.0",
            "loader-utils": "^2.0.0"
          }
        }
      }
@@ -13868,87 +13947,6 @@
          "resolved": "https://registry.npm.taobao.org/hash-sum/download/hash-sum-1.0.2.tgz",
          "integrity": "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=",
          "dev": true
        }
      }
    },
    "vue-loader-v16": {
      "version": "npm:vue-loader@16.8.3",
      "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-16.8.3.tgz",
      "integrity": "sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA==",
      "dev": true,
      "optional": true,
      "requires": {
        "chalk": "^4.1.0",
        "hash-sum": "^2.0.0",
        "loader-utils": "^2.0.0"
      },
      "dependencies": {
        "ansi-styles": {
          "version": "4.3.0",
          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
          "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
          "dev": true,
          "optional": true,
          "requires": {
            "color-convert": "^2.0.1"
          }
        },
        "chalk": {
          "version": "4.1.2",
          "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
          "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
          "dev": true,
          "optional": true,
          "requires": {
            "ansi-styles": "^4.1.0",
            "supports-color": "^7.1.0"
          }
        },
        "color-convert": {
          "version": "2.0.1",
          "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
          "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
          "dev": true,
          "optional": true,
          "requires": {
            "color-name": "~1.1.4"
          }
        },
        "color-name": {
          "version": "1.1.4",
          "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
          "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
          "dev": true,
          "optional": true
        },
        "has-flag": {
          "version": "4.0.0",
          "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
          "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
          "dev": true,
          "optional": true
        },
        "loader-utils": {
          "version": "2.0.4",
          "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz",
          "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==",
          "dev": true,
          "optional": true,
          "requires": {
            "big.js": "^5.2.2",
            "emojis-list": "^3.0.0",
            "json5": "^2.1.2"
          }
        },
        "supports-color": {
          "version": "7.2.0",
          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
          "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
          "dev": true,
          "optional": true,
          "requires": {
            "has-flag": "^4.0.0"
          }
        }
      }
    },
admin/src/components/business/OperaInternalCompanyWindow.vue
@@ -79,7 +79,7 @@
        parentId: null,
        disable: false,
        parentName: '',
        parentType:0
        parentType:null
      }
      if (target != null) {
        this.form.parentId = target.id
admin/src/views/business/visitorSources.vue
@@ -1,6 +1,13 @@
<template>
    <div class="box">
        <el-form :model="form" ref="form" label-width="140px">
            <div><span style="font-size: 15px;font-weight: bold">人员授权配置:</span></div>
          <el-form-item label="" prop="frezzDays" label-width="50px">
            äººå‘˜é—¨ç¦æŽˆæƒå†»ç»“:连续
            <el-input style="width: 50px;" type="text" v-model="form.frezzDays" placeholder="" v-trim/>
            å¤©ï¼Œæ— é—¨ç¦/车辆闸机事件
          </el-form-item>
            <div><span style="font-size: 15px;font-weight: bold">访客配置:</span></div>
            <el-form-item label="来访预约方式:" prop="reservationWay">
                <el-radio-group v-model="form.reservationWay">
                    <el-radio :label="0">预约免登记</el-radio>
@@ -45,6 +52,12 @@
            </el-form-item>
            <el-form-item label="入厂须知:" prop="visitNotice">
                <el-tiptap style="width: 50%;" v-model="form.visitNotice" :extensions="extensions" />
            </el-form-item>
            <el-form-item label="访客预约指南:" prop="visitNotice">
                <el-tiptap style="width: 50%;" v-model="form.visitTips" :extensions="extensions" />
            </el-form-item>
            <el-form-item label="访客入园导览图:" prop="visitNotice">
                <el-tiptap style="width: 50%;" v-model="form.visitMap" :extensions="extensions" />
            </el-form-item>
            <el-form-item>
                <el-button type="primary" @click="submit">保存配置项</el-button>
@@ -94,7 +107,10 @@
        doorsVisitRequired: '',
        theme: '',
        description: '',
        visitNotice: ''
        visitNotice: '',
        visitMap: '',
        visitTips: '',
        frezzDays: null
      },
      extensions: [
        new Doc(),
@@ -147,6 +163,9 @@
          this.form.theme = res.theme
          this.form.doorsVisitRequired = res.doorsVisitRequired
          this.form.visitNotice = res.visitNotice
          this.form.visitTips = res.visitTips
          this.form.visitMap = res.visitMap
          this.form.frezzDays = res.frezzDays
        })
    },
    submit () {
@@ -158,6 +177,9 @@
        description: this.form.description,
        theme: this.form.theme,
        visitNotice: this.form.visitNotice,
        visitTips: this.form.visitTips,
        frezzDays: this.form.frezzDays,
        visitMap: this.form.visitMap,
        doorsVisitRequired: this.form.doorsVisitRequired
      }).then(res => {
        this.$message.success('保存成功')
server/system_service/src/main/java/com/doumee/config/cloudfilter/CloudWebConfig.java
@@ -2,10 +2,14 @@
import com.doumee.core.utils.Constants;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import javax.servlet.Filter;
@Configuration
public class CloudWebConfig implements WebMvcConfigurer {
@@ -16,4 +20,14 @@
        registry.addInterceptor(new LoginHandlerInterceptor(stringRedisTemplate))
                .addPathPatterns(Constants.CLOUD_SERVICE_URL_INDEX+"/**");
    }
//    @Bean
    public FilterRegistrationBean addRequestWrapperFilter() {
        FilterRegistrationBean<Filter> registration = new FilterRegistrationBean<>();
        registration.setFilter(new RequestWrapperFilter());
        registration.setName("RequestWrapperFilter");
        registration.addUrlPatterns(Constants.CLOUD_SERVICE_URL_INDEX+"/*");
        registration.setOrder(1);
        return registration;
    }
}
server/system_service/src/main/java/com/doumee/config/cloudfilter/CustomHttpServletRequestWrapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,58 @@
package com.doumee.config.cloudfilter;
import javax.servlet.ReadListener;
import javax.servlet.ServletInputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequestWrapper;
import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.nio.charset.StandardCharsets;
public class CustomHttpServletRequestWrapper extends HttpServletRequestWrapper {
    private   String body;
    public CustomHttpServletRequestWrapper(HttpServletRequest request ) {
        super(request);
        this.body = body;
    }
    @Override
    public ServletInputStream getInputStream() throws IOException {
        final ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(body.getBytes(StandardCharsets.UTF_8));
        ServletInputStream servletInputStream = new ServletInputStream() {
            @Override
            public boolean isFinished() {
                return false;
            }
            @Override
            public boolean isReady() {
                return false;
            }
            @Override
            public void setReadListener(ReadListener readListener) {
            }
            @Override
            public int read() throws IOException {
                return byteArrayInputStream.read();
            }
        };
        return servletInputStream;
    }
    @Override
    public BufferedReader getReader() throws IOException {
        return new BufferedReader(new InputStreamReader(this.getInputStream()));
    }
    public String getBody() {
        return body;
    }
    public void setBody(String body) {
        this.body = body;
    }
}
server/system_service/src/main/java/com/doumee/config/cloudfilter/LoginHandlerInterceptor.java
@@ -13,12 +13,17 @@
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.web.method.HandlerMethod;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.util.ContentCachingRequestWrapper;
import javax.servlet.ServletInputStream;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequestWrapper;
import javax.servlet.http.HttpServletResponse;
import java.util.Arrays;
import java.util.Enumeration;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;
public class LoginHandlerInterceptor implements HandlerInterceptor {
@@ -69,6 +74,17 @@
                        }
                    }
                    /*try {
                        CustomHttpServletRequestWrapper requestWrapper = (CustomHttpServletRequestWrapper)request;
                        String body = requestWrapper.getBody();
                        JSONObject object = JSONObject.parseObject(body);
                        if(object!=null){
                            object.put("loginUserinfo",user);
                            requestWrapper.setBody( JSONObject.toJSONString(object));
                        }
                    }catch (Exception e){
                        e.printStackTrace();
                    }*/
                } else {
                    throw new BusinessException(ResponseStatus.NO_LOGIN.getCode(),"未登录");
                }
@@ -78,6 +94,30 @@
        }
        return true;
    }
    private String getRequestBody(HttpServletRequest request) {
        // å®žçŽ°ä»Žrequest获取请求体的逻辑
        String body = null;
        ServletInputStream inputStream = null;
        try {
            inputStream = request.getInputStream();
            String charset = request.getCharacterEncoding(); // å¯èƒ½ä¸ºnull
            if (charset == null) {
                charset = "UTF-8"; // é»˜è®¤ç¼–码
            }
            BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, charset));
            StringBuilder stringBuilder = new StringBuilder();
            String line = null;
            while ((line = reader.readLine()) != null) {
                stringBuilder.append(line + "\n");
            }
            body = stringBuilder.toString();
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
        return body;
    }
    private LoginUserInfo checkLogin(String token) {
@@ -96,8 +136,87 @@
        return  user;
    }
    //    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
//        UserContext.removeUser();
    }
    class RSARequestWrapper extends HttpServletRequestWrapper {
        private Map<String, String[]> params = new HashMap<>();
        /**
         * å¿…须要实现的构造方法
         * @param request
         */
        public RSARequestWrapper(HttpServletRequest request) {
            super(request);
            //将参数表,赋予给当前的Map以便于持有request中的参数
            this.params.putAll(request.getParameterMap());
        }
        /**
         * é‡è½½æž„造方法
         * @param request
         * @param extendParams
         */
        public RSARequestWrapper(HttpServletRequest request, Map<String, Object> extendParams) {
            this(request);
            //这里将扩展参数写入参数表
            addAllParameters(extendParams);
        }
        /**
         * åœ¨èŽ·å–æ‰€æœ‰çš„å‚æ•°å,必须重写此方法,否则对象中参数值映射不上
         * @return
         */
        @SuppressWarnings({ "unchecked", "rawtypes" })
        @Override
        public Enumeration<String> getParameterNames() {
            return new Vector(params.keySet()).elements();
        }
        /**
         * å¢žåŠ å¤šä¸ªå‚æ•°
         * @param otherParams å¢žåŠ çš„å¤šä¸ªå‚æ•°
         */
        public void addAllParameters(Map<String, Object> otherParams) {
            for (Map.Entry<String, Object> entry : otherParams.entrySet()) {
                addParameter(entry.getKey(), entry.getValue());
            }
        }
        /**
         * å¢žåŠ å‚æ•°
         * getParameterMap()中的类型是<String,String[]>类型的,所以这里要将其value转为String[]类型
         * @param name å‚数名
         * @param value å‚数值
         */
        public void addParameter(String name, Object value) {
            if (value != null) {
                if (value instanceof String[]) {
                    params.put(name, (String[]) value);
                } else if (value instanceof String) {
                    params.put(name, new String[]{(String) value});
                } else {
                    params.put(name, new String[]{String.valueOf(value)});
                }
            }
        }
        @Override
        public String[] getParameterValues(String name) {
            String[] access_token_user_id = params.get("access_token_user_id");
            String[] values = params.get(name);//getValue(name);
            if (values == null || access_token_user_id==null){
                return null;
            }
            return values;
        }
        @Override
        public String getParameter(String name) {
            String[] access_token_user_id = params.get("access_token_user_id");
            String[] values = params.get(name);//getValue(name);
            if (values == null || access_token_user_id==null){
                return null;
            }
            return values[0];
        }
    }
}
server/system_service/src/main/java/com/doumee/config/cloudfilter/RequestWrapperFilter.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
package com.doumee.config.cloudfilter;
import lombok.extern.slf4j.Slf4j;
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
@Slf4j
public class RequestWrapperFilter implements Filter {
    @Override
    public void init(FilterConfig config) {
        log.info("==>RequestWrapperFilter启动");
    }
    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
            throws java.io.IOException, ServletException {
        CustomHttpServletRequestWrapper requestWrapper = new CustomHttpServletRequestWrapper((HttpServletRequest) request);
        chain.doFilter(requestWrapper, response);
    }
    @Override
    public void destroy() {
    }
}
server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/CarBookController.java
ÎļþÒÑɾ³ý
server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/CarDriverController.java
@@ -39,7 +39,7 @@
    @GetMapping("/delete/{id}")
    @RequiresPermissions("business:cardriver:delete")
    public ApiResponse deleteById(@PathVariable Integer id) {
        carDriverService.deleteById(id);
        carDriverService.deleteById(id,this.getLoginUser(null));
        return ApiResponse.success(null);
    }
@@ -47,7 +47,7 @@
    @GetMapping("/delete/batch")
    @RequiresPermissions("business:cardriver:delete")
    public ApiResponse deleteByIdInBatch(@RequestParam String ids) {
        carDriverService.deleteByIdInBatch(this.getIdList(ids));
        carDriverService.deleteByIdInBatch(this.getIdList(ids),this.getLoginUser(null));
        return ApiResponse.success(null);
    }
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/CarBookCloudController.java
ÎļþÒÑɾ³ý
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/CarDriverCloudController.java
@@ -34,6 +34,7 @@
    @PostMapping("/create")
    @CloudRequiredPermission("business:cardriver:create")
    public ApiResponse create(@RequestBody CarDriver carDriver,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
        carDriver.setLoginUserInfo(this.getLoginUser(token));
        return ApiResponse.success(carDriverService.create(carDriver));
    }
@@ -41,7 +42,7 @@
    @GetMapping("/delete/{id}")
    @CloudRequiredPermission("business:cardriver:delete")
    public ApiResponse deleteById(@PathVariable Integer id,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
        carDriverService.deleteById(id);
        carDriverService.deleteById(id,this.getLoginUser(token));
        return ApiResponse.success(null);
    }
@@ -49,7 +50,7 @@
    @GetMapping("/delete/batch")
    @CloudRequiredPermission("business:cardriver:delete")
    public ApiResponse deleteByIdInBatch(@RequestParam String ids,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
        carDriverService.deleteByIdInBatch(this.getIdList(ids));
        carDriverService.deleteByIdInBatch(this.getIdList(ids),this.getLoginUser(token));
        return ApiResponse.success(null);
    }
@@ -57,6 +58,7 @@
    @PostMapping("/updateById")
    @CloudRequiredPermission("business:cardriver:update")
    public ApiResponse updateById(@RequestBody CarDriver carDriver,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
        carDriver.setLoginUserInfo(this.getLoginUser(token));
        carDriverService.updateById(carDriver);
        return ApiResponse.success(null);
    }
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/CarBookMapper.java
ÎļþÒÑɾ³ý
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/CarDriverMapper.java
@@ -2,11 +2,12 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.doumee.dao.business.model.CarDriver;
import com.github.yulichang.base.MPJBaseMapper;
/**
 * @author æ±Ÿè¹„蹄
 * @since 2024/04/28 16:06
 */
public interface CarDriverMapper extends BaseMapper<CarDriver> {
public interface CarDriverMapper extends MPJBaseMapper<CarDriver> {
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/CarUseBookMapper.java
@@ -2,11 +2,12 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.doumee.dao.business.model.CarUseBook;
import com.github.yulichang.base.MPJBaseMapper;
/**
 * @author æ±Ÿè¹„蹄
 * @since 2024/04/28 16:06
 */
public interface CarUseBookMapper extends BaseMapper<CarUseBook> {
public interface CarUseBookMapper extends MPJBaseMapper<CarUseBook> {
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Approve.java
@@ -1,6 +1,7 @@
package com.doumee.dao.business.model;
import com.doumee.core.annotation.excel.ExcelColumn;
import com.doumee.core.model.LoginUserModel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
@@ -18,7 +19,7 @@
@Data
@ApiModel("审批信息记录表")
@TableName("`approve`")
public class Approve {
public class Approve  extends LoginUserModel {
    @TableId(type = IdType.AUTO)
    @ApiModelProperty(value = "主键", example = "1")
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/ApproveParam.java
@@ -1,6 +1,7 @@
package com.doumee.dao.business.model;
import com.doumee.core.annotation.excel.ExcelColumn;
import com.doumee.core.model.LoginUserModel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
@@ -18,7 +19,7 @@
@Data
@ApiModel("审批模版配置信息表")
@TableName("`approve_param`")
public class ApproveParam {
public class ApproveParam  extends LoginUserModel {
    @TableId(type = IdType.AUTO)
    @ApiModelProperty(value = "主键", example = "1")
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/ApproveTempl.java
@@ -1,6 +1,7 @@
package com.doumee.dao.business.model;
import com.doumee.core.annotation.excel.ExcelColumn;
import com.doumee.core.model.LoginUserModel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
@@ -18,7 +19,7 @@
@Data
@ApiModel("审批模版信息表")
@TableName("`approve_templ`")
public class ApproveTempl {
public class ApproveTempl  extends LoginUserModel {
    @TableId(type = IdType.AUTO)
    @ApiModelProperty(value = "主键", example = "1")
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/CarBook.java
ÎļþÒÑɾ³ý
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/CarDriver.java
@@ -1,6 +1,8 @@
package com.doumee.dao.business.model;
import com.baomidou.mybatisplus.annotation.TableField;
import com.doumee.core.annotation.excel.ExcelColumn;
import com.doumee.core.model.LoginUserModel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
@@ -18,7 +20,7 @@
@Data
@ApiModel("司机信息表")
@TableName("`car_driver`")
public class CarDriver {
public class CarDriver extends LoginUserModel {
    @TableId(type = IdType.AUTO)
    @ApiModelProperty(value = "主键", example = "1")
@@ -27,7 +29,7 @@
    @ApiModelProperty(value = "创建人编码")
    @ExcelColumn(name="创建人编码")
    private String creator;
    private Integer creator;
    @ApiModelProperty(value = "创建时间")
    @ExcelColumn(name="创建时间")
@@ -36,7 +38,7 @@
    @ApiModelProperty(value = "更新人编码")
    @ExcelColumn(name="更新人编码")
    private String edirot;
    private Integer edirot;
    @ApiModelProperty(value = "更新时间")
    @ExcelColumn(name="更新时间")
@@ -67,4 +69,15 @@
    @ExcelColumn(name="人员编码(关联member表)")
    private Integer memberId;
    @ApiModelProperty(value = "司机姓名", example = "1")
    @TableField(exist = false)
    private String memberName;
    @ApiModelProperty(value = "司机组织名称", example = "1")
    @TableField(exist = false)
    private String companyName;
    @ApiModelProperty(value = "司机手机号", example = "1")
    @TableField(exist = false)
    private String memberPhone;
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/CarEvent.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.annotation.TableField;
import com.doumee.core.annotation.excel.ExcelColumn;
import com.doumee.core.model.LoginUserModel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
@@ -20,7 +21,7 @@
@Data
@ApiModel("停车场事件推送记录表")
@TableName("`car_event`")
public class CarEvent {
public class CarEvent  extends LoginUserModel {
    @TableId(type = IdType.AUTO)
    @ApiModelProperty(value = "主键", example = "1")
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/CarParks.java
@@ -1,6 +1,7 @@
package com.doumee.dao.business.model;
import com.doumee.core.annotation.excel.ExcelColumn;
import com.doumee.core.model.LoginUserModel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
@@ -18,7 +19,7 @@
@Data
@ApiModel("停车库信息表")
@TableName("`car_parks`")
public class CarParks {
public class CarParks  extends LoginUserModel {
    @TableId(type = IdType.AUTO)
    @ApiModelProperty(value = "主键", example = "1")
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/CarUseBook.java
@@ -1,6 +1,8 @@
package com.doumee.dao.business.model;
import com.baomidou.mybatisplus.annotation.TableField;
import com.doumee.core.annotation.excel.ExcelColumn;
import com.doumee.core.model.LoginUserModel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
@@ -9,6 +11,7 @@
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.util.Date;
import java.util.List;
/**
 * è½¦è¾†_用车申请信息表
@@ -18,7 +21,7 @@
@Data
@ApiModel("车辆_用车申请信息表")
@TableName("`car_use_book`")
public class CarUseBook {
public class CarUseBook extends LoginUserModel {
    @TableId(type = IdType.AUTO)
    @ApiModelProperty(value = "主键", example = "1")
@@ -59,12 +62,10 @@
    @ApiModelProperty(value = "开始时间")
    @ExcelColumn(name="开始时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date startTime;
    @ApiModelProperty(value = "结束时间")
    @ExcelColumn(name="结束时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date endTime;
    @ApiModelProperty(value = "预计出发时间")
@@ -117,7 +118,7 @@
    @ApiModelProperty(value = "乘车人编码集合,多个英文逗号隔开", example = "1")
    @ExcelColumn(name="乘车人编码集合,多个英文逗号隔开")
    private Integer memberIds;
    private String memberIds;
    @ApiModelProperty(value = "乘车人姓名集合,多个英文逗号隔开")
    @ExcelColumn(name="乘车人姓名集合,多个英文逗号隔开")
@@ -139,8 +140,28 @@
    @ExcelColumn(name="司机编码(关联car_driver)")
    private Integer driverId;
    @ApiModelProperty(value = "用车人员", example = "1")
    @ExcelColumn(name="用车人员")
    private Integer memberNum;
    @ApiModelProperty(value = "司机姓名", example = "1")
    @TableField(exist = false)
    private String driverName;
    @ApiModelProperty(value = "司机手机号", example = "1")
    @TableField(exist = false)
    private String driverPhone;
    @ApiModelProperty(value = "申请人姓名", example = "1")
    @TableField(exist = false)
    private String memberName;
    @ApiModelProperty(value = "申请人所属组织名称", example = "1")
    @TableField(exist = false)
    private String companyName;
    @ApiModelProperty(value = "申请人手机号", example = "1")
    @TableField(exist = false)
    private String memberPhone;
    @ApiModelProperty(value = "乘车人集合", example = "1")
    @TableField(exist = false)
    private List<Member> memberList;
    @ApiModelProperty(value = "查询开始时间(基于创建时间)", example = "2024-05-20 11:48:50")
    @TableField(exist = false)
    private Date queryStartTime;
    @ApiModelProperty(value = "查询截止始时间(基于创建时间)", example = "2024-05-20 11:48:46")
    @TableField(exist = false)
    private Date queryEndTime;
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Cars.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.annotation.TableField;
import com.doumee.core.annotation.excel.ExcelColumn;
import com.doumee.core.model.LoginUserModel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
@@ -19,7 +20,7 @@
@Data
@ApiModel("车辆信息表")
@TableName("`cars`")
public class Cars {
public class Cars  extends LoginUserModel {
    @TableId(value = "id",type = IdType.AUTO)
    @ApiModelProperty(value = "主键", example = "1")
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Device.java
@@ -1,6 +1,7 @@
package com.doumee.dao.business.model;
import com.doumee.core.annotation.excel.ExcelColumn;
import com.doumee.core.model.LoginUserModel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
@@ -19,7 +20,7 @@
@Data
@ApiModel("设备信息表")
@TableName("`device`")
public class Device {
public class Device  extends LoginUserModel {
    @TableId(type = IdType.AUTO)
    @ApiModelProperty(value = "主键", example = "1")
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/DeviceEvent.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.annotation.TableField;
import com.doumee.core.annotation.excel.ExcelColumn;
import com.doumee.core.model.LoginUserModel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
@@ -19,7 +20,7 @@
@Data
@ApiModel("门禁事件推送记录表")
@TableName("`device_event`")
public class DeviceEvent {
public class DeviceEvent  extends LoginUserModel {
    @TableId(type = IdType.AUTO)
    @ApiModelProperty(value = "主键", example = "1")
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Empower.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.annotation.TableField;
import com.doumee.core.annotation.excel.ExcelColumn;
import com.doumee.core.model.LoginUserModel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
@@ -19,7 +20,7 @@
@Data
@ApiModel("人员授权导入记录")
@TableName("`empower`")
public class Empower {
public class Empower  extends LoginUserModel {
    @TableId(type = IdType.AUTO)
    @ApiModelProperty(value = "主键", example = "1")
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/FormParam.java
@@ -1,6 +1,7 @@
package com.doumee.dao.business.model;
import com.doumee.core.annotation.excel.ExcelColumn;
import com.doumee.core.model.LoginUserModel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
@@ -18,7 +19,7 @@
@Data
@ApiModel("表单配置信息表")
@TableName("`form_param`")
public class FormParam {
public class FormParam  extends LoginUserModel {
    @TableId(type = IdType.AUTO)
    @ApiModelProperty(value = "主键", example = "1")
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/HiddenDanger.java
@@ -1,6 +1,7 @@
package com.doumee.dao.business.model;
import com.doumee.core.annotation.excel.ExcelColumn;
import com.doumee.core.model.LoginUserModel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
@@ -18,7 +19,7 @@
@Data
@ApiModel("隐患信息表")
@TableName("`hidden_danger`")
public class HiddenDanger {
public class HiddenDanger  extends LoginUserModel {
    @TableId(type = IdType.AUTO)
    @ApiModelProperty(value = "主键", example = "1")
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/HiddenDangerLog.java
@@ -1,6 +1,7 @@
package com.doumee.dao.business.model;
import com.doumee.core.annotation.excel.ExcelColumn;
import com.doumee.core.model.LoginUserModel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
@@ -18,7 +19,7 @@
@Data
@ApiModel("理賠操作历史表")
@TableName("`hidden_danger_log`")
public class HiddenDangerLog {
public class HiddenDangerLog  extends LoginUserModel {
    @TableId(type = IdType.AUTO)
    @ApiModelProperty(value = "主键", example = "1")
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/HiddenDangerParam.java
@@ -1,6 +1,7 @@
package com.doumee.dao.business.model;
import com.doumee.core.annotation.excel.ExcelColumn;
import com.doumee.core.model.LoginUserModel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
@@ -18,7 +19,7 @@
@Data
@ApiModel("隐患区域配置类型信息表")
@TableName("`hidden_danger_param`")
public class HiddenDangerParam {
public class HiddenDangerParam  extends LoginUserModel {
    @TableId(type = IdType.AUTO)
    @ApiModelProperty(value = "主键", example = "1")
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/InterfaceLog.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.annotation.TableField;
import com.doumee.core.annotation.excel.ExcelColumn;
import com.doumee.core.model.LoginUserModel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
@@ -19,7 +20,7 @@
@Data
@ApiModel("三方平台接口交互记录")
@TableName("`interface_log`")
public class InterfaceLog {
public class InterfaceLog  extends LoginUserModel {
    @TableId(type = IdType.AUTO)
    @ApiModelProperty(value = "主键", example = "1")
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/ParkBook.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.annotation.TableField;
import com.doumee.core.annotation.excel.ExcelColumn;
import com.doumee.core.model.LoginUserModel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
@@ -19,7 +20,7 @@
@Data
@ApiModel("车辆预约记录信息表")
@TableName("`park_book`")
public class ParkBook {
public class ParkBook  extends LoginUserModel {
    @TableId(type = IdType.AUTO)
    @ApiModelProperty(value = "主键", example = "1")
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Parks.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.annotation.TableField;
import com.doumee.core.annotation.excel.ExcelColumn;
import com.doumee.core.model.LoginUserModel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
@@ -19,7 +20,7 @@
@Data
@ApiModel("停车库信息表")
@TableName("`parks`")
public class Parks {
public class Parks  extends LoginUserModel {
    @TableId(type = IdType.AUTO)
    @ApiModelProperty(value = "主键", example = "1")
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Platform.java
@@ -1,6 +1,7 @@
package com.doumee.dao.business.model;
import com.doumee.core.annotation.excel.ExcelColumn;
import com.doumee.core.model.LoginUserModel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
@@ -18,7 +19,7 @@
@Data
@ApiModel("月台信息表")
@TableName("`platform`")
public class Platform {
public class Platform  extends LoginUserModel {
    @TableId(type = IdType.AUTO)
    @ApiModelProperty(value = "主键", example = "1")
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformGroup.java
@@ -1,6 +1,7 @@
package com.doumee.dao.business.model;
import com.doumee.core.annotation.excel.ExcelColumn;
import com.doumee.core.model.LoginUserModel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
@@ -18,7 +19,7 @@
@Data
@ApiModel("月台_分组信息表")
@TableName("`platform_group`")
public class PlatformGroup {
public class PlatformGroup  extends LoginUserModel {
    @TableId(type = IdType.AUTO)
    @ApiModelProperty(value = "主键", example = "1")
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformInterfaceLog.java
@@ -1,6 +1,7 @@
package com.doumee.dao.business.model;
import com.doumee.core.annotation.excel.ExcelColumn;
import com.doumee.core.model.LoginUserModel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
@@ -18,7 +19,7 @@
@Data
@ApiModel("作业调度平台接口交互记录")
@TableName("`platform_interface_log`")
public class PlatformInterfaceLog {
public class PlatformInterfaceLog  extends LoginUserModel {
    @TableId(type = IdType.AUTO)
    @ApiModelProperty(value = "主键", example = "1")
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformJob.java
@@ -1,6 +1,7 @@
package com.doumee.dao.business.model;
import com.doumee.core.annotation.excel.ExcelColumn;
import com.doumee.core.model.LoginUserModel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
@@ -19,7 +20,7 @@
@Data
@ApiModel("月台调度作业信息表")
@TableName("`platform_job`")
public class PlatformJob {
public class PlatformJob  extends LoginUserModel {
    @TableId(type = IdType.AUTO)
    @ApiModelProperty(value = "主键", example = "1")
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformLog.java
@@ -1,6 +1,7 @@
package com.doumee.dao.business.model;
import com.doumee.core.annotation.excel.ExcelColumn;
import com.doumee.core.model.LoginUserModel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
@@ -18,7 +19,7 @@
@Data
@ApiModel("月台_作业操作历史表")
@TableName("`platform_log`")
public class PlatformLog {
public class PlatformLog  extends LoginUserModel {
    @TableId(type = IdType.AUTO)
    @ApiModelProperty(value = "主键", example = "1")
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformQueue.java
@@ -1,6 +1,7 @@
package com.doumee.dao.business.model;
import com.doumee.core.annotation.excel.ExcelColumn;
import com.doumee.core.model.LoginUserModel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
@@ -18,7 +19,7 @@
@Data
@ApiModel("月台_叫号排队信息表")
@TableName("`platform_queue`")
public class PlatformQueue {
public class PlatformQueue  extends LoginUserModel {
    @TableId(type = IdType.AUTO)
    @ApiModelProperty(value = "主键", example = "1")
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformShowParam.java
@@ -1,6 +1,7 @@
package com.doumee.dao.business.model;
import com.doumee.core.annotation.excel.ExcelColumn;
import com.doumee.core.model.LoginUserModel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
@@ -18,7 +19,7 @@
@Data
@ApiModel("月台_显示配置信息表")
@TableName("`platform_show_param`")
public class PlatformShowParam {
public class PlatformShowParam  extends LoginUserModel {
    @TableId(type = IdType.AUTO)
    @ApiModelProperty(value = "主键", example = "1")
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/ProblemLog.java
@@ -4,6 +4,7 @@
import com.baomidou.mybatisplus.annotation.TableField;
import com.doumee.config.mybatis.JSONObjectHandler;
import com.doumee.core.annotation.excel.ExcelColumn;
import com.doumee.core.model.LoginUserModel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
@@ -22,7 +23,7 @@
@Data
@ApiModel("访客答题记录表")
@TableName(value = "`problem_log`",autoResultMap = true)
public class ProblemLog {
public class ProblemLog  extends LoginUserModel {
    @TableId(type = IdType.AUTO)
    @ApiModelProperty(value = "主键", example = "1")
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Problems.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.annotation.TableField;
import com.doumee.core.annotation.excel.ExcelColumn;
import com.doumee.core.model.LoginUserModel;
import com.doumee.dao.admin.request.OptionsObject;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
@@ -22,7 +23,7 @@
@Data
@ApiModel("试题信息表")
@TableName("`problems`")
public class Problems {
public class Problems  extends LoginUserModel {
    @TableId(type = IdType.AUTO)
    @ApiModelProperty(value = "主键", example = "1")
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Retention.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.annotation.TableField;
import com.doumee.core.annotation.excel.ExcelColumn;
import com.doumee.core.model.LoginUserModel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
@@ -19,7 +20,7 @@
@Data
@ApiModel("在厂人员信息 è¡¨ï¼ˆæ»žç•™ï¼‰")
@TableName("`retention`")
public class Retention {
public class Retention  extends LoginUserModel {
    @TableId(type = IdType.AUTO)
    @ApiModelProperty(value = "主键")
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Tasks.java
@@ -1,6 +1,7 @@
package com.doumee.dao.business.model;
import com.doumee.core.annotation.excel.ExcelColumn;
import com.doumee.core.model.LoginUserModel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
@@ -18,7 +19,7 @@
@Data
@ApiModel("安防下发平台任务信息表")
@TableName("`tasks`")
public class Tasks {
public class Tasks  extends LoginUserModel {
    @TableId(type = IdType.AUTO)
    @ApiModelProperty(value = "主键", example = "1")
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/TrainTime.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.annotation.TableField;
import com.doumee.core.annotation.excel.ExcelColumn;
import com.doumee.core.model.LoginUserModel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
@@ -19,7 +20,7 @@
@Data
@ApiModel("人员培训有效期记录")
@TableName("`train_time`")
public class TrainTime {
public class TrainTime  extends LoginUserModel {
    @TableId(type = IdType.AUTO)
    @ApiModelProperty(value = "主键", example = "1")
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/UserAction.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.annotation.TableField;
import com.doumee.core.annotation.excel.ExcelColumn;
import com.doumee.core.model.LoginUserModel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
@@ -19,7 +20,7 @@
@Data
@ApiModel("人员操作记录日志")
@TableName("`user_action`")
public class UserAction {
public class UserAction  extends LoginUserModel {
    @TableId(type = IdType.AUTO)
    @ApiModelProperty(value = "主键", example = "1")
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/VisitEvent.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.annotation.TableField;
import com.doumee.core.annotation.excel.ExcelColumn;
import com.doumee.core.model.LoginUserModel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
@@ -19,7 +20,7 @@
@Data
@ApiModel("访客事件推送记录表")
@TableName("`visit_event`")
public class VisitEvent {
public class VisitEvent  extends LoginUserModel {
    @TableId(type = IdType.AUTO)
    @ApiModelProperty(value = "主键", example = "1")
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/VisitPark.java
@@ -1,6 +1,7 @@
package com.doumee.dao.business.model;
import com.doumee.core.annotation.excel.ExcelColumn;
import com.doumee.core.model.LoginUserModel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
@@ -18,7 +19,7 @@
@Data
@ApiModel("访客报备停车库关联表")
@TableName("`visit_park`")
public class VisitPark {
public class VisitPark  extends LoginUserModel {
    @TableId(type = IdType.AUTO)
    @ApiModelProperty(value = "主键", example = "1")
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/VisitProblemLog.java
@@ -1,6 +1,7 @@
package com.doumee.dao.business.model;
import com.doumee.core.annotation.excel.ExcelColumn;
import com.doumee.core.model.LoginUserModel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
@@ -19,7 +20,7 @@
@Data
@ApiModel("访客答题记录表")
@TableName("`visit_problem_log`")
public class VisitProblemLog {
public class VisitProblemLog  extends LoginUserModel {
    @TableId(type = IdType.AUTO)
    @ApiModelProperty(value = "主键", example = "1")
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/VisitProblems.java
@@ -1,6 +1,7 @@
package com.doumee.dao.business.model;
import com.doumee.core.annotation.excel.ExcelColumn;
import com.doumee.core.model.LoginUserModel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
@@ -19,7 +20,7 @@
@Data
@ApiModel("试题信息表")
@TableName("`visit_problems`")
public class VisitProblems {
public class VisitProblems  extends LoginUserModel {
    @TableId(type = IdType.AUTO)
    @ApiModelProperty(value = "主键", example = "1")
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Visitor.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.annotation.TableField;
import com.doumee.core.annotation.excel.ExcelColumn;
import com.doumee.core.model.LoginUserModel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
@@ -19,7 +20,7 @@
@Data
@ApiModel("访客信息表")
@TableName("`visitor`")
public class Visitor {
public class Visitor  extends LoginUserModel {
    @TableId(type = IdType.AUTO)
    @ApiModelProperty(value = "主键", example = "1")
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Visits.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.annotation.TableField;
import com.doumee.core.annotation.excel.ExcelColumn;
import com.doumee.core.model.LoginUserModel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
@@ -22,7 +23,7 @@
@Data
@ApiModel("访客申请信息表")
@TableName("`visits`")
public class Visits {
public class Visits  extends LoginUserModel {
    @TableId(type = IdType.AUTO)
    @ApiModelProperty(value = "主键", example = "1")
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/CarBookService.java
ÎļþÒÑɾ³ý
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/CarDriverService.java
@@ -1,5 +1,6 @@
package com.doumee.service.business;
import com.doumee.core.model.LoginUserInfo;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.dao.business.model.CarDriver;
@@ -25,7 +26,7 @@
     *
     * @param id ä¸»é”®
     */
    void deleteById(Integer id);
    void deleteById(Integer id, LoginUserInfo user);
    /**
     * åˆ é™¤
@@ -39,7 +40,7 @@
     *
     * @param ids ä¸»é”®é›†
     */
    void deleteByIdInBatch(List<Integer> ids);
    void deleteByIdInBatch(List<Integer> ids, LoginUserInfo user);
    /**
     * ä¸»é”®æ›´æ–°
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarBookServiceImpl.java
ÎļþÒÑɾ³ý
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarDriverServiceImpl.java
@@ -1,19 +1,32 @@
package com.doumee.service.business.impl;
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.exception.BusinessException;
import com.doumee.core.model.LoginUserInfo;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.core.utils.Constants;
import com.doumee.core.utils.Utils;
import com.doumee.dao.business.CarDriverMapper;
import com.doumee.dao.business.MemberMapper;
import com.doumee.dao.business.model.CarDriver;
import com.doumee.dao.business.model.CarUseBook;
import com.doumee.dao.business.model.Company;
import com.doumee.dao.business.model.Member;
import com.doumee.service.business.CarDriverService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import lombok.extern.java.Log;
import org.apache.shiro.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import javax.smartcardio.Card;
import java.util.Date;
import java.util.List;
/**
@@ -26,15 +39,38 @@
    @Autowired
    private CarDriverMapper carDriverMapper;
    @Autowired
    private MemberMapper memberMapper;
    @Override
    public Integer create(CarDriver carDriver) {
        LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
        if(loginUserInfo == null){
            loginUserInfo = carDriver.getLoginUserInfo();
        }
        Member member = memberMapper.selectById(carDriver.getMemberId());
        if(member == null
                ||Constants.equalsInteger(member.getIsdeleted(),Constants.ONE)
                ||!Constants.equalsInteger(member.getType(),Constants.TWO)){
            throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"该司机信息不存在,请返回刷新页面重试!");
        }
        if(carDriverMapper.selectCount(new QueryWrapper<CarDriver>().lambda()
                .eq(CarDriver::getMemberId,carDriver.getMemberId())
                .eq(CarDriver::getIsdeleted, Constants.ZERO))>0){
            throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"该司机已经配置,无需重新配置!");
        }
        carDriver.setCreateDate(new Date());
        carDriver.setCreator(loginUserInfo.getId());
        carDriver.setEditDate(new Date());
        carDriver.setEdirot(loginUserInfo.getId());
        carDriver.setCompanyId(member.getCompanyId());
        carDriver.setStatus(Constants.ZERO);
        carDriverMapper.insert(carDriver);
        return carDriver.getId();
    }
    @Override
    public void deleteById(Integer id) {
    public void deleteById(Integer id, LoginUserInfo user) {
        carDriverMapper.deleteById(id);
    }
@@ -45,7 +81,7 @@
    }
    @Override
    public void deleteByIdInBatch(List<Integer> ids) {
    public void deleteByIdInBatch(List<Integer> ids, LoginUserInfo user) {
        if (CollectionUtils.isEmpty(ids)) {
            return;
        }
@@ -54,6 +90,12 @@
    @Override
    public void updateById(CarDriver carDriver) {
        LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
        if(loginUserInfo == null){
              loginUserInfo = carDriver.getLoginUserInfo();
        }
        carDriver.setEditDate(new Date());
        carDriver.setEdirot(loginUserInfo.getId());
        carDriverMapper.updateById(carDriver);
    }
@@ -69,7 +111,16 @@
    @Override
    public CarDriver findById(Integer id) {
        return carDriverMapper.selectById(id);
        MPJLambdaWrapper<CarDriver> queryWrapper = new MPJLambdaWrapper<>();
        queryWrapper.selectAll(CarDriver.class);
        queryWrapper.selectAs(Member::getName,CarDriver::getMemberName);
        queryWrapper.selectAs(Member::getPhone,CarDriver::getMemberPhone);
        queryWrapper.selectAs(Company::getCompanyNamePath,CarDriver::getCompanyName);
        queryWrapper.leftJoin(Member.class,Member::getId,CarUseBook::getMemberId)
                .leftJoin(Company.class,Company::getId,Member::getCompanyId)
                .eq(CarDriver::getId,id)
                .last("limit 1");
        return carDriverMapper.selectJoinOne(CarDriver.class,queryWrapper);
    }
    @Override
@@ -87,9 +138,15 @@
    @Override
    public PageData<CarDriver> findPage(PageWrap<CarDriver> pageWrap) {
        IPage<CarDriver> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
        QueryWrapper<CarDriver> queryWrapper = new QueryWrapper<>();
        MPJLambdaWrapper<CarDriver> queryWrapper = new MPJLambdaWrapper<>();
        Utils.MP.blankToNull(pageWrap.getModel());
        queryWrapper.lambda()
        queryWrapper.selectAll(CarDriver.class);
        queryWrapper.selectAs(Member::getName,CarDriver::getMemberName);
        queryWrapper.selectAs(Member::getPhone,CarDriver::getMemberPhone);
        queryWrapper.selectAs(Company::getCompanyNamePath,CarDriver::getCompanyName);
        queryWrapper.leftJoin(Member.class,Member::getId,CarUseBook::getMemberId)
                .leftJoin(Company.class,Company::getId,Member::getCompanyId);
        queryWrapper
                .eq(pageWrap.getModel().getId() != null, CarDriver::getId, pageWrap.getModel().getId())
                .eq(pageWrap.getModel().getCreator() != null, CarDriver::getCreator, pageWrap.getModel().getCreator())
                .ge(pageWrap.getModel().getCreateDate() != null, CarDriver::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()))
@@ -103,6 +160,7 @@
                .eq(pageWrap.getModel().getCompanyId() != null, CarDriver::getCompanyId, pageWrap.getModel().getCompanyId())
                .eq(pageWrap.getModel().getStatus() != null, CarDriver::getStatus, pageWrap.getModel().getStatus())
                .eq(pageWrap.getModel().getMemberId() != null, CarDriver::getMemberId, pageWrap.getModel().getMemberId())
                .orderByDesc(CarDriver::getCreateDate );
        ;
        for(PageWrap.SortData sortData: pageWrap.getSorts()) {
            if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
@@ -111,7 +169,7 @@
                queryWrapper.orderByAsc(sortData.getProperty());
            }
        }
        return PageData.from(carDriverMapper.selectPage(page, queryWrapper));
        return PageData.from(carDriverMapper.selectJoinPage(page,CarDriver.class, queryWrapper));
    }
    @Override
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarUseBookServiceImpl.java
@@ -2,19 +2,25 @@
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.core.utils.Constants;
import com.doumee.core.utils.DESUtil;
import com.doumee.core.utils.Utils;
import com.doumee.dao.business.CarUseBookMapper;
import com.doumee.dao.business.model.CarUseBook;
import com.doumee.dao.business.model.*;
import com.doumee.service.business.CarUseBookService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
/**
 * è½¦è¾†_用车申请信息表Service实现
@@ -69,7 +75,20 @@
    @Override
    public CarUseBook findById(Integer id) {
        return carUseBookMapper.selectById(id);
        MPJLambdaWrapper<CarUseBook>  queryWrapper = new MPJLambdaWrapper<>();
        queryWrapper.selectAll(CarUseBook.class);
        queryWrapper.select("t1.name",CarUseBook::getMemberName);
        queryWrapper.select("t1.phone",CarUseBook::getMemberPhone);
        queryWrapper.select("t2.name",CarUseBook::getDriverName);
        queryWrapper.select("t3.phone",CarUseBook::getDriverPhone);
        queryWrapper.select("t4.company_name_path",CarUseBook::getCompanyName);
        queryWrapper.leftJoin(Member.class,Member::getId,CarUseBook::getMemberId)
                .leftJoin("company t4 on t1.company_id=t4.id")
                .leftJoin(Member.class,Member::getId,CarUseBook::getDriverId)
                .eq(CarUseBook::getId,id)
                .last("limit 1"  );
        CarUseBook model = carUseBookMapper.selectJoinOne(CarUseBook.class,queryWrapper);
        return  model;
    }
    @Override
@@ -87,9 +106,19 @@
    @Override
    public PageData<CarUseBook> findPage(PageWrap<CarUseBook> pageWrap) {
        IPage<CarUseBook> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
        QueryWrapper<CarUseBook> queryWrapper = new QueryWrapper<>();
        MPJLambdaWrapper<CarUseBook>  queryWrapper = new MPJLambdaWrapper<>();
        Utils.MP.blankToNull(pageWrap.getModel());
        queryWrapper.lambda()
        pageWrap.getModel().setIsdeleted(Constants.ZERO);
        queryWrapper.selectAll(CarUseBook.class);
        queryWrapper.select("t1.name",CarUseBook::getMemberName);
        queryWrapper.select("t1.phone",CarUseBook::getMemberPhone);
        queryWrapper.select("t2.name",CarUseBook::getDriverName);
        queryWrapper.select("t3.phone",CarUseBook::getDriverPhone);
        queryWrapper.select("t4.company_name_path",CarUseBook::getCompanyName);
        queryWrapper.leftJoin(Member.class,Member::getId,CarUseBook::getMemberId)
                    .leftJoin("company t4 on t1.company_id=t4.id")
                    .leftJoin(Member.class,Member::getId,CarUseBook::getDriverId);
        queryWrapper
                .eq(pageWrap.getModel().getId() != null, CarUseBook::getId, pageWrap.getModel().getId())
                .eq(pageWrap.getModel().getCreator() != null, CarUseBook::getCreator, pageWrap.getModel().getCreator())
                .ge(pageWrap.getModel().getCreateDate() != null, CarUseBook::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()))
@@ -99,7 +128,7 @@
                .le(pageWrap.getModel().getEditDate() != null, CarUseBook::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()))
                .eq(pageWrap.getModel().getIsdeleted() != null, CarUseBook::getIsdeleted, pageWrap.getModel().getIsdeleted())
                .eq(pageWrap.getModel().getRemark() != null, CarUseBook::getRemark, pageWrap.getModel().getRemark())
                .eq(pageWrap.getModel().getCarCode() != null, CarUseBook::getCarCode, pageWrap.getModel().getCarCode())
                .like(pageWrap.getModel().getCarCode() != null, CarUseBook::getCarCode, pageWrap.getModel().getCarCode())
                .eq(pageWrap.getModel().getCarId() != null, CarUseBook::getCarId, pageWrap.getModel().getCarId())
                .ge(pageWrap.getModel().getStartTime() != null, CarUseBook::getStartTime, Utils.Date.getStart(pageWrap.getModel().getStartTime()))
                .le(pageWrap.getModel().getStartTime() != null, CarUseBook::getStartTime, Utils.Date.getEnd(pageWrap.getModel().getStartTime()))
@@ -126,7 +155,11 @@
                .eq(pageWrap.getModel().getAddr() != null, CarUseBook::getAddr, pageWrap.getModel().getAddr())
                .eq(pageWrap.getModel().getMemberId() != null, CarUseBook::getMemberId, pageWrap.getModel().getMemberId())
                .eq(pageWrap.getModel().getDriverId() != null, CarUseBook::getDriverId, pageWrap.getModel().getDriverId())
                .eq(pageWrap.getModel().getMemberNum() != null, CarUseBook::getMemberNum, pageWrap.getModel().getMemberNum())
                .and(StringUtils.isNotBlank(pageWrap.getModel().getMemberName()), ms->ms.like(Member::getName,pageWrap.getModel().getMemberName())
                        .or().like(Member::getPhone,pageWrap.getModel().getMemberName()))
                .ge(Objects.nonNull(pageWrap.getModel().getQueryStartTime()), Empower::getCreateDate,pageWrap.getModel().getQueryStartTime())
                .le(Objects.nonNull(pageWrap.getModel().getQueryEndTime()),Empower::getCreateDate,pageWrap.getModel().getQueryEndTime())
                .orderByDesc(Visits::getCreateDate)
        ;
        for(PageWrap.SortData sortData: pageWrap.getSorts()) {
            if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
@@ -135,7 +168,7 @@
                queryWrapper.orderByAsc(sortData.getProperty());
            }
        }
        return PageData.from(carUseBookMapper.selectPage(page, queryWrapper));
        return PageData.from(carUseBookMapper.selectJoinPage(page, CarUseBook.class, queryWrapper));
    }
    @Override