Merge remote-tracking branch 'origin/master'
| | |
| | | open(title, target) { |
| | | this.title = title |
| | | this.visible = true |
| | | this.form.imgFullUrl = '' |
| | | // this.timeRange = ['14:34:55', '14:34:55'] |
| | | // debugger |
| | | this.timeRange = ['', ''] |
| | | // æ°å»º |
| | | if (target == null) { |
| | |
| | | for (const key in this.form) { |
| | | this.form[key] = target[key] |
| | | } |
| | | if(target.fileType == 1 && target.multifileList && target.multifileList.length > 0){ |
| | | this.$set(this.form, 'videoFullUrl', target.multifileList[0].fileurlFull) |
| | | this.$set(this.form, 'videourl', target.multifileList[0].fileurl) |
| | | } |
| | | this.timeRange = [target.startTime, target.endTime] |
| | | this.form.projectList = this.form.projectList ? target.projectList.map(item => item.projectId) : [] |
| | | this.form.sysList = this.form.sysList ? this.form.sysList.map(item => item.userId) : [] |
| | | // console.log(this.form.imgFullUrl); |
| | | console.log(this.form) |
| | | console.log(this.form.intervalTime) |
| | | console.log(target) |
| | | }) |
| | | }, |
| | | imgDel(i) { |
| | |
| | | "proxy" : { |
| | | "/admin_interface" : { |
| | | // è¿ä¸ªå段åéä¸ä½ é
ç½®çbasePrefixUrlä¸è´ï¼ç³»ç»è¯å«å°å¸¦æ/dev-api请æ±çå°åæ¶ï¼ä¼å¨å颿¼æ¥ä¸ä»£çæå¡å¨å°å |
| | | "target" : "http://192.168.0.139/admin_interface", // 代çæå¡å¨ååæIPå°å |
| | | "target" : "http://192.168.137.1:10010", // 代çæå¡å¨ååæIPå°å |
| | | // "target" : "http://192.168.31.42:10010", // 代çæå¡å¨ååæIPå°å |
| | | // "target" : "http://10.50.250.178:8088/gateway_interface", // 代çæå¡å¨ååæIPå°å |
| | | "changeOrigin" : true, // å
许跨å |
| | |
| | | data() { |
| | | return { |
| | | form: { |
| | | username: '18056814089', |
| | | username: '13996529050', |
| | | password: '123456', |
| | | code: 1 |
| | | }, |
| | |
| | | var p = location.href.split("?") |
| | | // window.location.href = 'http://192.168.0.173/h5/#/pages/notice/notice?' + 'code=123123' |
| | | window.location.href = 'http://192.168.0.173/h5/#/pages/notice/notice?' + p[1] |
| | | // window.location.href = 'http://192.168.0.173/h5/#/pages/staff/meetingDetail?' + p[1] |
| | | // window.location.href = 'http://192.168.0.173/h5/#/pages/staff/index?' + p[1] |
| | | </script> |
| | | </head> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | { |
| | | "version" : "1.0", |
| | | "configurations" : [ |
| | | { |
| | | "openVueDevtools" : false, |
| | | "type" : "uni-app:h5" |
| | | } |
| | | ] |
| | | } |
| | |
| | | "/meetingAdmin": {
|
| | | // è¿ä¸ªå段åéä¸ä½ é
ç½®çbasePrefixUrlä¸è´ï¼ç³»ç»è¯å«å°å¸¦æ/dev-api请æ±çå°åæ¶ï¼ä¼å¨å颿¼æ¥ä¸ä»£çæå¡å¨å°å
|
| | | // "target" : "http://192.168.0.173/admin_interface", // 代çæå¡å¨ååæIPå°å
|
| | | "target": "http://192.168.0.139:10010", // 代çæå¡å¨ååæIPå°å
|
| | | "target": "http://192.168.137.1:10010", // 代çæå¡å¨ååæIPå°å
|
| | | "changeOrigin": true, // å
许跨å
|
| | | "pathRewrite": {
|
| | | "^/meetingAdmin": "" // éåå°åï¼å¦æå®é
æ¥å£ä¸æ¯ä¸å¸¦/dev-apiï¼éè¦å°è¿ä¸ªåç¼ç½®ç©ºï¼å 为è¿ä¸ªåç¼åªæ¯ä¸ºäºè¯å«ç¨ï¼è¯å«å®ä¹å就没ç¨äº
|
| | |
| | | { |
| | | "name": "h5_meeting", |
| | | "lockfileVersion": 3, |
| | | "requires": true, |
| | | "packages": { |
| | | "": { |
| | | "dependencies": { |
| | | "dayjs": "^1.11.13" |
| | | "lockfileVersion": 1, |
| | | "dependencies": { |
| | | "balanced-match": { |
| | | "version": "1.0.2", |
| | | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", |
| | | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" |
| | | }, |
| | | "brace-expansion": { |
| | | "version": "2.0.1", |
| | | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", |
| | | "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", |
| | | "requires": { |
| | | "balanced-match": "^1.0.0" |
| | | } |
| | | }, |
| | | "node_modules/dayjs": { |
| | | "version": "1.11.13", |
| | | "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz", |
| | | "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==" |
| | | "dayjs": { |
| | | "version": "1.11.13" |
| | | }, |
| | | "decompress-response": { |
| | | "version": "6.0.0", |
| | | "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", |
| | | "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", |
| | | "requires": { |
| | | "mimic-response": "^3.1.0" |
| | | } |
| | | }, |
| | | "fs.realpath": { |
| | | "version": "1.0.0", |
| | | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", |
| | | "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" |
| | | }, |
| | | "glob": { |
| | | "version": "8.1.0", |
| | | "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", |
| | | "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", |
| | | "requires": { |
| | | "fs.realpath": "^1.0.0", |
| | | "inflight": "^1.0.4", |
| | | "inherits": "2", |
| | | "minimatch": "^5.0.1", |
| | | "once": "^1.3.0" |
| | | } |
| | | }, |
| | | "inflight": { |
| | | "version": "1.0.6", |
| | | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", |
| | | "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", |
| | | "requires": { |
| | | "once": "^1.3.0", |
| | | "wrappy": "1" |
| | | } |
| | | }, |
| | | "inherits": { |
| | | "version": "2.0.4", |
| | | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", |
| | | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" |
| | | }, |
| | | "js-binary-schema-parser": { |
| | | "version": "2.0.3", |
| | | "resolved": "https://registry.npmjs.org/js-binary-schema-parser/-/js-binary-schema-parser-2.0.3.tgz", |
| | | "integrity": "sha512-xezGJmOb4lk/M1ZZLTR/jaBHQ4gG/lqQnJqdIv4721DMggsa1bDVlHXNeHYogaIEHD9vCRv0fcL4hMA+Coarkg==" |
| | | }, |
| | | "mimic-response": { |
| | | "version": "3.1.0", |
| | | "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", |
| | | "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==" |
| | | }, |
| | | "minimatch": { |
| | | "version": "5.1.6", |
| | | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", |
| | | "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", |
| | | "requires": { |
| | | "brace-expansion": "^2.0.1" |
| | | } |
| | | }, |
| | | "once": { |
| | | "version": "1.4.0", |
| | | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", |
| | | "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", |
| | | "requires": { |
| | | "wrappy": "1" |
| | | } |
| | | }, |
| | | "parenthesis": { |
| | | "version": "3.1.8", |
| | | "resolved": "https://registry.npmjs.org/parenthesis/-/parenthesis-3.1.8.tgz", |
| | | "integrity": "sha512-KF/U8tk54BgQewkJPvB4s/US3VQY68BRDpH638+7O/n58TpnwiwnOtGIOsT2/i+M78s61BBpeC83STB88d8sqw==" |
| | | }, |
| | | "simple-concat": { |
| | | "version": "1.0.1", |
| | | "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", |
| | | "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==" |
| | | }, |
| | | "simple-get": { |
| | | "version": "4.0.1", |
| | | "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz", |
| | | "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==", |
| | | "requires": { |
| | | "decompress-response": "^6.0.0", |
| | | "once": "^1.3.1", |
| | | "simple-concat": "^1.0.0" |
| | | } |
| | | }, |
| | | "string-split-by": { |
| | | "version": "1.0.0", |
| | | "resolved": "https://registry.npmjs.org/string-split-by/-/string-split-by-1.0.0.tgz", |
| | | "integrity": "sha512-KaJKY+hfpzNyet/emP81PJA9hTVSfxNLS9SFTWxdCnnW1/zOOwiV248+EfoX7IQFcBaOp4G5YE6xTJMF+pLg6A==", |
| | | "requires": { |
| | | "parenthesis": "^3.1.5" |
| | | } |
| | | }, |
| | | "vue-qr": { |
| | | "version": "4.0.9", |
| | | "resolved": "https://registry.npmjs.org/vue-qr/-/vue-qr-4.0.9.tgz", |
| | | "integrity": "sha512-pAISV94T0MNEYA3NGjykUpsXRE2QfaNxlu9ZhEL6CERgqNc21hJYuP3hRVzAWfBQlgO18DPmZTbrFerJC3+Ikw==", |
| | | "requires": { |
| | | "glob": "^8.0.1", |
| | | "js-binary-schema-parser": "^2.0.2", |
| | | "simple-get": "^4.0.1", |
| | | "string-split-by": "^1.0.0" |
| | | } |
| | | }, |
| | | "wrappy": { |
| | | "version": "1.0.2", |
| | | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", |
| | | "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" |
| | | } |
| | | } |
| | | } |
| | |
| | | { |
| | | "dependencies": { |
| | | "dayjs": "^1.11.13" |
| | | "dayjs": "^1.11.13", |
| | | "vue-qr": "^4.0.9" |
| | | } |
| | | } |
| | |
| | | <view class="main_app">
|
| | | <image src="@/static/bg@2x.png" class="main_bg" mode=""></image>
|
| | | <view class="header_wrap">
|
| | | <view class="title" @touchend="touchend">ä¼è®®å®¤</view>
|
| | | <view class="title" @touchend="touchend">{{info.roomName}}</view>
|
| | | <view class="time_wrap">
|
| | | <view class="time">{{time}}</view>
|
| | | <view class="date">{{date}}</view>
|
| | | </view>
|
| | | </view>
|
| | | <view class="home_status orange">ä¼è®®ä¸</view>
|
| | | <view class="meeting_name">ä¼è®®åç§°</view>
|
| | | <view class="home_status"> |
| | | <text v-if="!info.meetingListResponseList || info.meetingListResponseList.length == 0">空é²ä¸</text> |
| | | <text v-if="info.meetingListResponseList && info.meetingListResponseList.length > 0 && info.meetingListResponseList[0].meetingStatus == 4">å³å°å¼å§</text> |
| | | <text class="orange" v-if="info.meetingListResponseList && info.meetingListResponseList.length > 0 && info.meetingListResponseList[0].meetingStatus == 2">ä¼è®®ä¸</text> |
| | | <text v-if="info.meetingListResponseList && info.meetingListResponseList.length > 0 && info.meetingListResponseList[0].meetingStatus == 1">æªå¼å§</text> |
| | | <text v-if="info.meetingListResponseList && info.meetingListResponseList.length > 0 && info.meetingListResponseList[0].meetingStatus == 3">å·²ç»æ</text> |
| | | <text v-if="info.meetingListResponseList && info.meetingListResponseList.length > 0 && info.meetingListResponseList[0].meetingStatus == 5">å·²æ¤é</text> |
| | | </view>
|
| | | <view class="meeting_name">{{meetingInfo.meetingName}}</view>
|
| | | <view class="meeting_con">
|
| | | <view class="content">
|
| | | <view class="line">
|
| | | <image src="@/static/ic_time@2x.png"></image>
|
| | | <text>10~12</text>
|
| | | <text>{{meetingInfo.meetingTime }}</text>
|
| | | </view>
|
| | | <view class="line">
|
| | | <image src="@/static/ic_people@2x.png"></image>
|
| | | <text>10~12</text>
|
| | | <text>é¢çº¦äººï¼{{meetingInfo.bookingUser }}</text>
|
| | | </view>
|
| | | </view>
|
| | | <view class="qrcode"></view>
|
| | | </view> |
| | | <vueQr v-if="meetingInfo.id" :text="meetingInfo.id" class="qrcode" />
|
| | | </view>
|
| | | <view class="meeting_wrap">
|
| | | <view class="title">仿¥ä¼è®®ï¼6ï¼</view>
|
| | | <view class="title">仿¥ä¼è®®ï¼{{ info.meetingListResponseList && info.meetingListResponseList.length > 0 ? info.meetingListResponseList.length : 0 }}ï¼</view>
|
| | | <view class="list">
|
| | | <view class="item">
|
| | | <view class="name">å¼åé¨ä¼è®®</view>
|
| | | <view class="line">é¢çº¦äººï¼ææè±</view>
|
| | | <view class="line">13:30ï½15:00ï¼å³å°å¼å§ï¼</view>
|
| | | <view class="item" v-for="item in info.meetingListResponseList">
|
| | | <view class="name">{{item.meetingName}}</view>
|
| | | <view class="line">é¢çº¦äººï¼{{item.bookingUser}}</view>
|
| | | <view class="line">{{item.meetingTime}}ï¼{{statusMap[item.meetingStatus]}}ï¼</view>
|
| | | <image src="@/static/ic_meeting@2x.png" class="item_bg"></image>
|
| | | </view>
|
| | | <view class="item empty">
|
| | | <view v-if="!info.meetingListResponseList || info.meetingListResponseList.length == 0" class="item empty">
|
| | | <view class="name">ææ ä¼è®®</view>
|
| | | <view class="line">é¢çº¦äººï¼-</view>
|
| | | <view class="line">-</view>
|
| | |
| | | </view>
|
| | | </view>
|
| | | </view>
|
| | |
|
| | | <!-- -->
|
| | | <swiper v-if="info.fileType == 0 && info.multifileList && info.multifileList.length > 0" class="swiper" circular autoplay indicator-dots>
|
| | | <swiper-item v-for="item in info.multifileList">
|
| | | <image class="swiper_item" :src="item.fileurlFull" mode="aspectFill"></image>
|
| | | </swiper-item>
|
| | | </swiper> |
| | | <!-- --> |
| | | <template v-if="info.fileType == 1 && info.multifileList && info.multifileList.length > 0"> |
| | | <video :src="info.multifileList[0].fileurlFull" class="app_video" :autoplay="true" loop :controls="false"></video> |
| | | </template>
|
| | | </view>
|
| | | </template>
|
| | |
|
| | | <script>
|
| | | import dayjs from 'dayjs'
|
| | | import dayjs from 'dayjs' |
| | | import vueQr from 'vue-qr/src/packages/vue-qr.vue'
|
| | | import {
|
| | | meetScreenData
|
| | | } from '@/api/index.js'
|
| | | export default {
|
| | | export default { |
| | | components: {vueQr},
|
| | | data() {
|
| | | return {
|
| | | time: '',
|
| | | date: '',
|
| | | timer: null,
|
| | | touchNum: 0, |
| | | param: {}
|
| | | touchNum: 0,
|
| | | param: {}, |
| | | info: {}, |
| | | statusMap: { |
| | | 1: 'æªå¼å§', |
| | | 2: 'è¿è¡ä¸', |
| | | 3: 'å·²ç»æ', |
| | | 4: 'å³å°å¼å§', |
| | | 5: 'å·²æ¤é', |
| | | }, |
| | | meetingInfo: {}
|
| | | }
|
| | | },
|
| | | onLoad() { |
| | | this.initDatetime() |
| | | this.param = uni.getStorageSync('param') || {} |
| | | if(!this.param.code){ |
| | | return uni.navigateTo({ |
| | | url: '/pages/index/config' |
| | | }) |
| | | } |
| | | onLoad() {
|
| | | this.initDatetime()
|
| | | this.param = uni.getStorageSync('param') || {}
|
| | | if (!this.param.code) {
|
| | | return uni.navigateTo({
|
| | | url: '/pages/index/config'
|
| | | })
|
| | | }
|
| | | this.getData()
|
| | | },
|
| | | methods: {
|
| | | getData() {
|
| | | meetScreenData({ |
| | | roomId: this.param.code |
| | | meetScreenData({
|
| | | roomId: this.param.code
|
| | | }).then(res => { |
| | | this.info = res.data |
| | | if(this.info.meetingListResponseList && this.info.meetingListResponseList.length > 0){ |
| | | this.meetingInfo = this.info.meetingListResponseList[0] |
| | | this.$forceUpdate() |
| | | } |
| | | })
|
| | | },
|
| | | touchend() {
|
| | |
| | | console.log('åå»')
|
| | | }
|
| | | if (this.touchNum >= 2) {
|
| | | uni.navigateTo({ |
| | | url: '/pages/index/config' |
| | | uni.navigateTo({
|
| | | url: '/pages/index/config'
|
| | | })
|
| | | }
|
| | | this.touchNum = 0
|
| | |
| | | this.timer = setInterval(() => {
|
| | | this.time = dayjs().format('HH:mm')
|
| | | this.date = dayjs().format('YYYY-MM-DD') + ' ' + weeks[new Date().getDay()]
|
| | | }, 1000)
|
| | | }, 1000) |
| | | setInterval(() => { |
| | | this.getData() |
| | | },this.param.time ? this.param.time * 1000 : 60 * 1000)
|
| | | }
|
| | | }
|
| | | }
|
| | | </script>
|
| | |
|
| | | <style lang="scss" scoped>
|
| | | <style lang="scss" scoped> |
| | | .swiper{ |
| | | position: fixed; |
| | | top: 0; |
| | | left: 0; |
| | | z-index: 999; |
| | | width: 100%; |
| | | height: 100vh; |
| | | .swiper_item{ |
| | | background-color: #0095AC; |
| | | width: 100%; |
| | | height: 100vh; |
| | | } |
| | | } |
| | | .app_video{ |
| | | width: 100%; |
| | | height: 100vh; |
| | | position: fixed; |
| | | top: 0; |
| | | left: 0; |
| | | z-index: 999; |
| | | }
|
| | | .main_app {
|
| | | width: 100%;
|
| | | min-height: 100vh;
|
| | |
| | | justify-content: space-between;
|
| | | padding-bottom: 35rpx;
|
| | | color: #fff;
|
| | |
|
| | | overflow: hidden;
|
| | | .meeting_wrap {
|
| | | margin-left: 42rpx;
|
| | | margin-top: 85rpx;
|
| | |
| | | flex-shrink: 0;
|
| | | flex-direction: column;
|
| | | width: 403rpx;
|
| | | height: 315rpx;
|
| | | background: linear-gradient(90deg, #0095AC 0%, #00B5D1 100%);
|
| | | height: 315rpx; |
| | | background: linear-gradient( 90deg, #0080FF 0%, #00B0FF 100%);
|
| | | border-radius: 7rpx;
|
| | | margin-right: 28rpx;
|
| | | position: relative;
|
| | |
|
| | | &:nth-of-type(1){ |
| | | background: linear-gradient(90deg, #0095AC 0%, #00B5D1 100%); |
| | | }
|
| | | .item_bg {
|
| | | position: absolute;
|
| | | width: 178rpx;
|
| | |
| | | .qrcode {
|
| | | width: 166rpx;
|
| | | height: 166rpx;
|
| | | border: 1px solid red;
|
| | | }
|
| | | }
|
| | |
|
| | |
| | | import com.doumee.dao.web.response.MeetingDetailResponse; |
| | | import com.doumee.dao.web.response.MeetingListResponse; |
| | | import com.doumee.dao.web.response.MonthDataResponse; |
| | | import com.doumee.dao.web.response.RoomDetailResponse; |
| | | import com.doumee.service.business.BookingsService; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiImplicitParam; |
| | |
| | | @PostMapping("/reservationCancel") |
| | | public ApiResponse reservationCancel(@RequestBody BusinessOverDTO businessOverDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) { |
| | | LoginUserInfo user = getLoginUser(token); |
| | | businessOverDTO.setUserId(user.getId()) ; |
| | | businessOverDTO.setUserId(user.getId()); |
| | | bookingsService.reservationCancel(businessOverDTO); |
| | | return ApiResponse.success("æä½æå"); |
| | | } |
| | | |
| | | @ApiOperation("æåå¼å§ä¼è®®") |
| | | @PostMapping("/startEarly") |
| | | public ApiResponse startEarly(@RequestBody BusinessOverDTO businessOverDTO,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) { |
| | | LoginUserInfo user = getLoginUser(token); |
| | | businessOverDTO.setUserId(user.getId()); |
| | | businessOverDTO.setStartType(Constants.ZERO); |
| | | bookingsService.startEarly(businessOverDTO); |
| | | return ApiResponse.success("æä½æå"); |
| | | } |
| | | |
| | | @ApiOperation("å¼å§ä¼è®®") |
| | | @PostMapping("/start") |
| | | public ApiResponse start(@RequestBody BusinessOverDTO businessOverDTO,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) { |
| | | LoginUserInfo user = getLoginUser(token); |
| | | businessOverDTO.setUserId(user.getId()); |
| | | businessOverDTO.setStartType(Constants.ONE); |
| | | bookingsService.start(businessOverDTO); |
| | | return ApiResponse.success("æä½æå"); |
| | | } |
| | | |
| | |
| | | |
| | | |
| | | |
| | | |
| | | } |
| | |
| | | |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.doumee.api.BaseController; |
| | | import com.doumee.config.annotation.LoginNoRequired; |
| | | import com.doumee.core.annotation.trace.Trace; |
| | | import com.doumee.core.model.ApiResponse; |
| | | import com.doumee.core.model.LoginUserInfo; |
| | |
| | | import com.doumee.dao.web.response.MeetingDetailResponse; |
| | | import com.doumee.dao.web.response.MeetingListResponse; |
| | | import com.doumee.dao.web.response.MonthDataResponse; |
| | | import com.doumee.dao.web.response.RoomDetailResponse; |
| | | import com.doumee.service.business.BookingsService; |
| | | import com.doumee.service.system.SystemUserService; |
| | | import io.swagger.annotations.Api; |
| | |
| | | return ApiResponse.success("æä½æå"); |
| | | } |
| | | |
| | | @ApiOperation("æåå¼å§ä¼è®®") |
| | | @PostMapping("/startEarly") |
| | | public ApiResponse startEarly(@RequestBody BusinessOverDTO businessOverDTO,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) { |
| | | LoginUserInfo user = getLoginUser(token); |
| | | businessOverDTO.setUserId(user.getId()); |
| | | businessOverDTO.setStartType(Constants.ZERO); |
| | | bookingsService.startEarly(businessOverDTO); |
| | | return ApiResponse.success("æä½æå"); |
| | | } |
| | | |
| | | @ApiOperation("å¼å§ä¼è®®") |
| | | @PostMapping("/start") |
| | | public ApiResponse start(@RequestBody BusinessOverDTO businessOverDTO,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) { |
| | | LoginUserInfo user = getLoginUser(token); |
| | | businessOverDTO.setUserId(user.getId()); |
| | | businessOverDTO.setStartType(Constants.ONE); |
| | | bookingsService.start(businessOverDTO); |
| | | return ApiResponse.success("æä½æå"); |
| | | } |
| | | |
| | | @LoginNoRequired |
| | | @ApiOperation("ä¼è®®å±ä¿¡æ¯") |
| | | @GetMapping("/meetScreenData") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "roomId", value = "ä¼è®®å®¤ä¸»é®", required = true), |
| | | }) |
| | | public ApiResponse<RoomDetailResponse> meetScreenData(@RequestParam Integer roomId) { |
| | | return ApiResponse.success("æ¥è¯¢æå",bookingsService.getRoomDetail(roomId)); |
| | | } |
| | | |
| | | } |
| | |
| | | //åéä¼è®®å¼å§ 宿¶æåå¤å°åéåé |
| | | public static final String NOTICE_TIME = "NOTICE_TIME"; |
| | | public static final String SYSTEM ="SYSTEM"; |
| | | public static final String EARLY_START = "EARLY_START"; |
| | | public static final String SOON_START = "SOON_START"; |
| | | public static final String MEET_CODE_PREFIX = "MEET_CODE_PREFIX"; |
| | | |
| | | |
| | | |
| | |
| | | private String businessRemark; |
| | | @ApiModelProperty(value = "ç¨æ·ä¸»é®",required = true) |
| | | private Integer userId ; |
| | | @ApiModelProperty(value = "å¼å§ç±»å 0 æåå¼å§ 1 æ£å¸¸å¼å§",required = true) |
| | | private Integer startType ; |
| | | |
| | | } |
| | |
| | | |
| | | @Select(" select a.id , a.START_TIME , a.END_TIME , b.`NAME` as roomName , a.`NAME` as meetingName ,date_format(a.START_TIME,'%Y-%m-%d') as meetingDate , a.START_TIME as startTime, a.status ," + |
| | | " CONCAT(date_format(a.START_TIME,'%H:%i') , ' ~ ',date_format(a.END_TIME,'%H:%i')) as meetingTime, c.REALNAME as bookingUser ," + |
| | | " CASE WHEN a.START_TIME > now() AND a.`STATUS` = 0 THEN 1 WHEN ( (a.END_TIME < now() AND a.`STATUS` = 0 ) or a.`STATUS` = 2 ) THEN 3 WHEN a.`STATUS` = 1 THEN 5 ELSE 2 END meetingStatus ," + |
| | | //" CASE WHEN a.START_TIME > now() AND a.`STATUS` = 0 THEN 1 WHEN ( (a.END_TIME < now() AND a.`STATUS` = 0 ) or a.`STATUS` = 2 ) THEN 3 WHEN a.`STATUS` = 1 THEN 5 ELSE 2 END meetingStatus ," + |
| | | " CASE WHEN a.START_TIME_REAL IS NULL AND a.`STATUS` = 0 THEN 1 WHEN ( (a.END_TIME < now() AND a.`STATUS` = 0 ) or a.`STATUS` = 2 ) THEN 3 WHEN a.`STATUS` = 1 THEN 5 ELSE 2 END meetingStatus ," + |
| | | " b.IMGURL as imgUrl ," + |
| | | " a.remark " + |
| | | " from meeting_book a inner join meeting_rooms b on a.ROOM_ID = b.ID " + |
| | |
| | | " ${ew.customSqlSegment} ") |
| | | IPage<MeetingListResponse> myMeetingPage(IPage<MeetingListResponse> page, @Param(Constants.WRAPPER) Wrapper wrapper); |
| | | |
| | | |
| | | @Select(" select a.id , a.START_TIME , a.END_TIME , b.`NAME` as roomName , a.`NAME` as meetingName ,date_format(a.START_TIME,'%Y-%m-%d') as meetingDate , a.START_TIME as startTime, a.status ," + |
| | | " CONCAT(date_format(a.START_TIME,'%H:%i') , ' ~ ',date_format(a.END_TIME,'%H:%i')) as meetingTime, c.REALNAME as bookingUser ," + |
| | | //" CASE WHEN a.START_TIME > now() AND a.`STATUS` = 0 THEN 1 WHEN ( (a.END_TIME < now() AND a.`STATUS` = 0 ) or a.`STATUS` = 2 ) THEN 3 WHEN a.`STATUS` = 1 THEN 5 ELSE 2 END meetingStatus ," + |
| | | " CASE WHEN a.START_TIME_REAL IS NULL AND a.`STATUS` = 0 THEN 1 WHEN ( (a.END_TIME < now() AND a.`STATUS` = 0 ) or a.`STATUS` = 2 ) THEN 3 WHEN a.`STATUS` = 1 THEN 5 ELSE 2 END meetingStatus ," + |
| | | " b.IMGURL as imgUrl ," + |
| | | " a.remark " + |
| | | " from meeting_book a inner join meeting_rooms b on a.ROOM_ID = b.ID " + |
| | | " inner join system_user c on a.CREATOR = c.id " + |
| | | " ${ew.customSqlSegment} ") |
| | | List<MeetingListResponse> meetingList(@Param(Constants.WRAPPER) Wrapper wrapper); |
| | | |
| | | @Select(" select a.id , a.START_TIME , a.END_TIME , b.id as roomId, b.`NAME` as roomName , a.`NAME` as meetingName ,date_format(a.START_TIME,'%Yå¹´%mæ%dæ¥') as meetingDate ," + |
| | | " CONCAT(date_format(a.START_TIME,'%H:%i') , ' ~ ',date_format(a.END_TIME,'%H:%i')) as meetingTime, c.REALNAME as bookingUserName ," + |
| | | " CASE WHEN a.START_TIME > now() AND a.`STATUS` = 0 THEN 1 WHEN a.END_TIME < now() AND a.`STATUS` = 0 THEN 3 WHEN a.`STATUS` = 1 THEN 5 ELSE 2 END meetingStatus ," + |
| | | //" CASE WHEN a.START_TIME > now() AND a.`STATUS` = 0 THEN 1 WHEN a.END_TIME < now() AND a.`STATUS` = 0 THEN 3 WHEN a.`STATUS` = 1 THEN 5 ELSE 2 END meetingStatus ," + |
| | | " CASE WHEN a.START_TIME_REAL IS NULL AND a.`STATUS` = 0 THEN 1 WHEN a.END_TIME < now() AND a.`STATUS` = 0 THEN 3 WHEN a.`STATUS` = 1 THEN 5 ELSE 2 END meetingStatus ," + |
| | | " a.CONTENT as meetingContent, c.MOBILE as bookingUserMobile , e.`NAME` as bookingUserDepartment , a.CREATOR as bookingUserId , a.remark " + |
| | | " from meeting_book a inner join meeting_rooms b on a.ROOM_ID = b.ID " + |
| | | " left join system_user c on a.CREATOR = c.id " + |
| | |
| | | @ApiModelProperty(value = "忶夿³¨") |
| | | private String doneInfo; |
| | | |
| | | @ApiModelProperty(value = "æåå¼å§æ¶é´") |
| | | private Date startTimeReal; |
| | | |
| | | @ApiModelProperty(value = "é¢çº¦äºº") |
| | | @TableField(exist = false) |
| | | private String realName ; |
| | |
| | | package com.doumee.dao.business.model; |
| | | |
| | | import cn.hutool.core.img.Img; |
| | | import com.baomidou.mybatisplus.annotation.TableField; |
| | | import com.doumee.core.annotation.excel.ExcelColumn; |
| | | import com.doumee.core.model.LoginUserModel; |
| | | import com.doumee.dao.system.model.Multifile; |
| | | import com.doumee.dao.system.model.SystemUser; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | |
| | | @ExcelColumn(name="容纳人æ°") |
| | | private Integer limitNum; |
| | | |
| | | @ApiModelProperty(value = "ä¼è®®å®¤æä»¶ç±»åï¼0=å¾çï¼å¤å¾ï¼ï¼1=è§é¢ï¼2=æ ") |
| | | private Integer fileType; |
| | | |
| | | @ApiModelProperty(value = "ä¼è®®å®¤å¾ç") |
| | | @ExcelColumn(name="ä¼è®®å®¤å¾ç") |
| | | private String imgurl; |
| | |
| | | @TableField(exist = false) |
| | | private String imgFullUrl; |
| | | |
| | | |
| | | @ApiModelProperty(value = "éä»¶æä»¶") |
| | | @TableField(exist = false) |
| | | private List<Multifile> multifileList; |
| | | |
| | | |
| | | } |
| | |
| | | package com.doumee.dao.web.response; |
| | | |
| | | import com.doumee.dao.system.model.Multifile; |
| | | import com.doumee.dao.system.model.SystemUser; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | |
| | | |
| | | import java.io.Serializable; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * Created by IntelliJ IDEA. |
| | |
| | | @ApiModelProperty(value = "ä¼è®®å¼å§æ¶é´",hidden = true) |
| | | private Date startTime; |
| | | |
| | | @ApiModelProperty(value = "ç¶æ 0å·²é¢çº¦ 1å·²æ¤é ",hidden = true) |
| | | @ApiModelProperty(value = "ç¶æ 0å·²é¢çº¦ 1å·²æ¤é 2å·²ç»æ",hidden = true) |
| | | private Integer status; |
| | | |
| | | @ApiModelProperty(value = "ä¼è®®é¢çº¦äºº") |
| | |
| | | @ApiModelProperty(value = "ä¼è®®å®¤å¾ç") |
| | | private String imgUrl; |
| | | |
| | | @ApiModelProperty(value = "æä»¶ç±»å") |
| | | private Integer fileType; |
| | | |
| | | @ApiModelProperty(value = "ä¼è®®å®¤éä»¶ä¿¡æ¯") |
| | | private List<Multifile> multifileList; |
| | | |
| | | @ApiModelProperty(value = "åç¼") |
| | | private String prefixUrl; |
| | | |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.dao.web.response; |
| | | |
| | | import com.doumee.dao.system.model.Multifile; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * Created by IntelliJ IDEA. |
| | | * |
| | | * @Author : Rk |
| | | * @create 2023/3/23 9:25 |
| | | */ |
| | | @Data |
| | | @ApiModel("ä¼è®®å®¤å±ä¿¡æ¯è¿åç±»") |
| | | public class RoomDetailResponse { |
| | | |
| | | @ApiModelProperty(value = "主é®") |
| | | private Integer id; |
| | | |
| | | @ApiModelProperty(value = "ä¼è®®å®¤åç§°") |
| | | private String roomName; |
| | | |
| | | @ApiModelProperty(value = "ä¼è®®å®¤æä»¶ç±»åï¼0=å¾çï¼å¤å¾ï¼ï¼1=è§é¢ï¼2=æ ") |
| | | private Integer fileType; |
| | | |
| | | @ApiModelProperty(value = "äºç»´ç åç¼") |
| | | private String prefix; |
| | | |
| | | @ApiModelProperty(value = "ä¼è®®å®¤æä»¶") |
| | | private List<Multifile> multifileList; |
| | | |
| | | @ApiModelProperty(value = "ä¼è®®å表") |
| | | private List<MeetingListResponse> meetingListResponseList; |
| | | |
| | | } |
| | |
| | | import com.doumee.dao.business.model.ProjectRel; |
| | | import com.doumee.dao.business.model.RoomTime; |
| | | import com.doumee.dao.business.model.UserRel; |
| | | import com.doumee.dao.system.model.Multifile; |
| | | import com.fasterxml.jackson.annotation.JsonFormat; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | |
| | | @ApiModelProperty(value = "使ç¨é¡»ç¥") |
| | | private String tips; |
| | | |
| | | @ApiModelProperty(value = "ä¼è®®å®¤æä»¶ç±»åï¼0=å¾çï¼å¤å¾ï¼ï¼1=è§é¢ï¼2=æ ") |
| | | private Integer fileType; |
| | | |
| | | @ApiModelProperty(value = "åä¼äººå") |
| | | @TableField(exist = false) |
| | | private List<UserRel> sysList; |
| | |
| | | @ApiModelProperty(value = "æå¡é¡¹ç®") |
| | | @TableField(exist = false) |
| | | private List<ProjectRel> projectList; |
| | | |
| | | @ApiModelProperty(value = "éä»¶æä»¶") |
| | | private List<Multifile> multifileList; |
| | | |
| | | } |
| | |
| | | import com.doumee.dao.web.response.DateTimeResourceDate; |
| | | import com.doumee.dao.web.response.MeetingDetailResponse; |
| | | import com.doumee.dao.web.response.MeetingListResponse; |
| | | import com.doumee.dao.web.response.RoomDetailResponse; |
| | | import org.apache.ibatis.annotations.Param; |
| | | |
| | | import java.time.LocalDateTime; |
| | |
| | | |
| | | /** |
| | | * ä¼è®®é¢çº¦è®°å½åæ¶ |
| | | * @param id |
| | | * @param userId |
| | | */ |
| | | void reservationCancel(BusinessOverDTO businessOverDTO); |
| | | |
| | |
| | | IPage<UserResponse> getUserPage(PageWrap<UserPageRequest> pageWrap); |
| | | |
| | | void reservationOver(BusinessOverDTO businessOverDTO); |
| | | |
| | | void start(BusinessOverDTO businessOverDTO); |
| | | |
| | | void startEarly(BusinessOverDTO businessOverDTO); |
| | | |
| | | RoomDetailResponse getRoomDetail(Integer roomId); |
| | | } |
| | |
| | | .orderByAsc(Constants.equalsInteger(pageWrap.getModel().getQueryType(),MeetConstants.ONE),"a.START_TIME"); |
| | | |
| | | IPage<MeetingListResponse> page = bookingsMapper.myMeetingPage(pageWrap.toPage(), queryWrapper); |
| | | String path = systemDictDataBiz.queryByCode(MeetConstants.FTP, MeetConstants.FTP_RESOURCE_PATH).getCode() + systemDictDataBiz.queryByCode(MeetConstants.FTP, MeetConstants.PROJECTS).getCode(); |
| | | page.getRecords().forEach(i -> { |
| | | i.setPrefixUrl(path); |
| | | if(i.getMeetingStatus().equals(Constants.ZERO)){ |
| | | if(i.getMeetingStatus()==Constants.ONE){ |
| | | //å¼å§å120åé 大äºå½åæ¶é´ åæ¾ç¤ºå³å°å¼å§ |
| | | if(DateUtil.afterMinutesDate(i.getStartTime(),-120).getTime()>System.currentTimeMillis()){ |
| | | i.setMeetingStatus(4); |
| | | } |
| | | } |
| | | } |
| | | |
| | | }); |
| | | this.dealMeetingStatus(page.getRecords()); |
| | | return page; |
| | | } |
| | | |
| | |
| | | .eq("BOOKING_ID", id) |
| | | .eq("ISDELETED", MeetConstants.ZERO) |
| | | )); |
| | | |
| | | //åä¼äººåå表 |
| | | |
| | | List<UserResponse> userResponseList = systemUserService.getUserList(id); |
| | | String avatarPath = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode() |
| | | +systemDictDataBiz.queryByCode(Constants.FTP,Constants.MEMBER_IMG).getCode(); |
| | |
| | | bookingTimeJoinMapper.updateById(bookingTime); |
| | | } |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * æ£å¸¸å¼å§ |
| | | * @param businessOverDTO |
| | | */ |
| | | @Override |
| | | @Transactional(rollbackFor = {Exception.class,BusinessException.class}) |
| | | public void start(BusinessOverDTO businessOverDTO) { |
| | | this.startEarly(businessOverDTO); |
| | | } |
| | | |
| | | /** |
| | | * æåå¼å§ |
| | | * @param businessOverDTO |
| | | */ |
| | | @Override |
| | | @Transactional(rollbackFor = {Exception.class,BusinessException.class}) |
| | | public void startEarly(BusinessOverDTO businessOverDTO) { |
| | | if(Objects.isNull(businessOverDTO) |
| | | || Objects.isNull(businessOverDTO.getUserId()) |
| | | || Objects.isNull(businessOverDTO.getStartType()) |
| | | || Objects.isNull(businessOverDTO.getId()) |
| | | ){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST); |
| | | } |
| | | Bookings bookings = bookingsMapper.selectById(businessOverDTO.getId()); |
| | | if (Objects.isNull(bookings)) { |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(), "æªæ¥è¯¢å°é¢çº¦è®°å½"); |
| | | } |
| | | Long userRelList = userRelMapper.selectCount(new QueryWrapper<UserRel>().lambda() |
| | | .eq(UserRel::getIsdeleted,Constants.ZERO) |
| | | .eq(UserRel::getObjId,bookings.getRoomId()) |
| | | .eq(UserRel::getObjType,Constants.ONE) |
| | | .eq(UserRel::getUserId,businessOverDTO.getUserId())); |
| | | |
| | | if (!bookings.getCreator().equals(businessOverDTO.getUserId()) && userRelList <= 0) { |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "éä½ çé¢çº¦è®°å½,æ æ³è¿è¡è¯¥æä½"); |
| | | } |
| | | if(!Constants.equalsInteger(bookings.getStatus(),Constants.ZERO)){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "ä¼è®®ç¶æå·²æµè½¬ï¼æ æ³è¿è¡è¯¥æä½"); |
| | | } |
| | | if(Objects.nonNull(bookings.getStartTimeReal())){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "ä¼è®®å·²å¼å§ï¼è¯·å¿é夿ä½"); |
| | | } |
| | | if (System.currentTimeMillis() > bookings.getEndTime().getTime()) { |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "ä¼è®®å·²ç»æï¼æ æ³è¿è¡è¯¥æä½"); |
| | | } |
| | | if(Constants.equalsInteger(businessOverDTO.getStartType(),Constants.ZERO)){ |
| | | //æ ¹æ®é
ç½®è·åæåå¼å§çåéæ°é |
| | | String configMinute = systemDictDataBiz.queryByCode(MeetConstants.SYSTEM, MeetConstants.EARLY_START).getCode(); |
| | | Integer beforeMinutes = StringUtils.isNotBlank(configMinute) ? Integer.valueOf(configMinute) : 120; |
| | | if(DateUtil.afterMinutesDate(bookings.getStartTime(),-beforeMinutes).getTime()>System.currentTimeMillis()){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"ä¼è®®ä»
å¯ä»¥æå"+beforeMinutes+"åéå¼å§"); |
| | | } |
| | | }else{ |
| | | if(bookings.getStartTime().getTime() > System.currentTimeMillis()){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"æªå°ä¼è®®ç³è¯·å¼å§æ¶é´ï¼æ æ³è¿è¡å¼å¯"); |
| | | } |
| | | } |
| | | bookings.setStartTimeReal(new Date()); |
| | | bookings.setEditDate(new Date()); |
| | | bookings.setEditor(businessOverDTO.getUserId()); |
| | | bookingsMapper.updateById(bookings); |
| | | //æ´æ°å·²ç»æä½æªç»æçä¼è®®ä¿¡æ¯ä¸ºå·²ç»æ |
| | | bookingsMapper.update(null,new UpdateWrapper<Bookings>() |
| | | .lambda() |
| | | .set(Bookings::getStatus,Constants.TWO) |
| | | .set(Bookings::getDoneDate,new Date()) |
| | | .apply(" END_TIME < now() ") |
| | | .eq(Bookings::getStatus,Constants.ZERO) |
| | | .eq(Bookings::getRoomId,bookings.getRoomId()) |
| | | ); |
| | | |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public RoomDetailResponse getRoomDetail(Integer roomId){ |
| | | Rooms rooms = roomsMapper.selectById(roomId); |
| | | if(Objects.isNull(rooms) || !Constants.equalsInteger(rooms.getIsdeleted(),Constants.ZERO) |
| | | || !Constants.equalsInteger(rooms.getStatus(),Constants.ZERO)){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"ä¼è®®å®¤ä¿¡æ¯æ æï¼è¯·è系管çå"); |
| | | } |
| | | RoomDetailResponse response = new RoomDetailResponse(); |
| | | response.setRoomName(rooms.getName()); |
| | | response.setFileType(rooms.getFileType()); |
| | | |
| | | List<Multifile> multifileList = multifileJoinMapper.selectList(new QueryWrapper<Multifile>().lambda() |
| | | .eq(Multifile::getObjId,roomId) |
| | | .eq(Multifile::getObjType,Constants.FOUR) |
| | | ); |
| | | |
| | | String prefix = systemDictDataBiz.queryByCode(MeetConstants.SYSTEM, MeetConstants.MEET_CODE_PREFIX).getCode() ; |
| | | response.setPrefix(prefix); |
| | | |
| | | if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(multifileList)){ |
| | | String path = systemDictDataBiz.queryByCode(MeetConstants.FTP, MeetConstants.FTP_RESOURCE_PATH).getCode() + systemDictDataBiz.queryByCode(MeetConstants.FTP, MeetConstants.PROJECTS).getCode(); |
| | | for (Multifile multifile:multifileList) { |
| | | multifile.setFileurlFull(path + multifile.getFileurl()); |
| | | } |
| | | response.setMultifileList(multifileList); |
| | | } |
| | | |
| | | //æ¥è¯¢ä¼è®®å表 |
| | | List<MeetingListResponse> meetingList = bookingsMapper.meetingList( |
| | | new QueryWrapper<Bookings>() |
| | | .eq( "b.id", rooms.getId()) |
| | | .eq("b.ISDELETED",MeetConstants.ZERO) |
| | | .eq("b.STATUS",MeetConstants.ZERO) |
| | | .eq("a.ISDELETED",MeetConstants.ZERO) |
| | | .eq("a.status",Constants.ZERO) |
| | | .like("a.start_time",DateUtil.getCurrDate()) |
| | | .orderByAsc("a.start_time") |
| | | ); |
| | | this.dealMeetingStatus(meetingList); |
| | | response.setMeetingListResponseList(meetingList); |
| | | return response; |
| | | } |
| | | |
| | | |
| | | public void dealMeetingStatus(List<MeetingListResponse> meetingResponseList){ |
| | | if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(meetingResponseList)){ |
| | | String path = systemDictDataBiz.queryByCode(MeetConstants.FTP, MeetConstants.FTP_RESOURCE_PATH).getCode() + systemDictDataBiz.queryByCode(MeetConstants.FTP, MeetConstants.PROJECTS).getCode(); |
| | | String configMinute = systemDictDataBiz.queryByCode(MeetConstants.SYSTEM, MeetConstants.SOON_START).getCode(); |
| | | Integer minute = StringUtils.isNotBlank(configMinute) ? Integer.valueOf(configMinute) : 120; |
| | | for (MeetingListResponse m:meetingResponseList) { |
| | | if(Constants.equalsInteger(m.getStatus(),Constants.ZERO)&&Constants.equalsInteger(m.getMeetingStatus(),Constants.ONE)){ |
| | | //å¼å§å120åé 大äºå½åæ¶é´ åæ¾ç¤ºå³å°å¼å§ |
| | | if(DateUtil.afterMinutesDate(m.getStartTime(),-minute).getTime()>System.currentTimeMillis()){ |
| | | m.setMeetingStatus(4); |
| | | } |
| | | } |
| | | m.setPrefixUrl(path); |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 宿¶åéä¼è®® å³å°å¼å§éç¥ |
| | | */ |
| | |
| | | import com.doumee.dao.business.RoomsMapper; |
| | | import com.doumee.dao.business.join.*; |
| | | import com.doumee.dao.business.model.*; |
| | | import com.doumee.dao.system.model.Multifile; |
| | | import com.doumee.dao.system.model.SystemUser; |
| | | import com.doumee.dao.web.request.MeetingPageRequest; |
| | | import com.doumee.dao.web.request.RoomsRequest; |
| | |
| | | private RoomsMapper roomsMapper; |
| | | @Autowired |
| | | private RoomsJoinMapper roomsJoinMapper; |
| | | @Autowired |
| | | private MultifileJoinMapper multifileJoinMapper; |
| | | |
| | | |
| | | @Autowired |
| | | private RoomTimeJoinMapper roomTimeJoinMapper; |
| | |
| | | if (starttime.after(endtime) || starttime.equals(endtime)) { |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "æ¥æåºé´é误"); |
| | | } |
| | | |
| | | if(!Constants.equalsInteger(rooms.getFileType(),Constants.TWO)&&CollectionUtils.isEmpty(rooms.getMultifileList())){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"æªä¸ä¼ æä»¶å¾ç"); |
| | | } |
| | | |
| | | rooms.setCreateDate(new Date()); |
| | | rooms.setIsdeleted(Constants.ZERO); |
| | |
| | | rooms.setStatus(Constants.ZERO); |
| | | rooms.setEditDate(rooms.getCreateDate()); |
| | | roomsMapper.insert(rooms); |
| | | |
| | | if(!Constants.equalsInteger(rooms.getFileType(),Constants.TWO)){ |
| | | List<Multifile> multifileList = rooms.getMultifileList(); |
| | | for (Multifile multifile:multifileList) { |
| | | if(Objects.isNull(multifile) |
| | | || StringUtils.isBlank(multifile.getFileurl())){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"éä»¶åæ°é误"); |
| | | } |
| | | multifile.setCreateDate(new Date()); |
| | | multifile.setObjId(rooms.getId()); |
| | | multifile.setObjType(Constants.FOUR); |
| | | multifile.setIsdeleted(Constants.ZERO); |
| | | multifile.setCreator(user.getId()); |
| | | } |
| | | multifileJoinMapper.insert(multifileList); |
| | | } |
| | | rooms.setStartTime(rooms.getStartTime()+":00"); |
| | | rooms.setEndTime(rooms.getEndTime()+":00"); |
| | | rooms.setStartTime(DateUtil.formatDate(starttime.getTime(), "yyyy-MM-dd HH:mm:ss")); |
| | |
| | | if (StringUtils.isBlank(rooms.getName()) || |
| | | StringUtils.isBlank(rooms.getStartTime()) || |
| | | StringUtils.isBlank(rooms.getEndTime()) || |
| | | Objects.isNull(rooms.getFileType()) || |
| | | rooms.getIntervalTime() == null |
| | | ) { |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), ResponseStatus.BAD_REQUEST.getMessage()); |
| | |
| | | rooms.setIntervalTime(null); |
| | | } |
| | | |
| | | |
| | | rooms.setEditDate(new Date()); |
| | | rooms.setEditor(user.getId()); |
| | | |
| | | // if(!Constants.equalsInteger(rooms.getFileType(),Constants.TWO)&&StringUtils.isBlank(rooms.getImgurl())){ |
| | | // throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"æªä¸ä¼ æä»¶å¾ç"); |
| | | // } |
| | | // if(Constants.equalsInteger(rooms.getFileType(),Constants.TWO)){ |
| | | // rooms.setImgurl(null); |
| | | // } |
| | | |
| | | roomsMapper.update(rooms, Wrappers.<Rooms>lambdaUpdate() |
| | | .set(Rooms::getFileType, rooms.getFileType()) |
| | | .set(Rooms::getLimitNum, rooms.getLimitNum()) |
| | | .set(Rooms::getTips, rooms.getTips()) |
| | | .set(Rooms::getImgurl, rooms.getImgurl()) |
| | | .eq(Rooms::getId, rooms.getId())); |
| | | |
| | | multifileJoinMapper.delete(new QueryWrapper<Multifile>().lambda() |
| | | .eq(Multifile::getObjId,rooms.getId()) |
| | | .eq(Multifile::getObjType,Constants.FOUR) |
| | | ); |
| | | |
| | | if(!Constants.equalsInteger(rooms.getFileType(),Constants.TWO)){ |
| | | List<Multifile> multifileList = rooms.getMultifileList(); |
| | | for (Multifile multifile:multifileList) { |
| | | if(Objects.isNull(multifile) |
| | | || StringUtils.isBlank(multifile.getFileurl())){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"éä»¶åæ°é误"); |
| | | } |
| | | multifile.setCreateDate(new Date()); |
| | | multifile.setObjId(rooms.getId()); |
| | | multifile.setObjType(Constants.FOUR); |
| | | multifile.setIsdeleted(Constants.ZERO); |
| | | multifile.setCreator(user.getId()); |
| | | } |
| | | multifileJoinMapper.insert(multifileList); |
| | | } |
| | | |
| | | rooms.setStartTime(rooms.getStartTime()+":00"); |
| | | rooms.setEndTime(rooms.getEndTime()+":00"); |
| | |
| | | findpr.leftJoin(Projects.class,Projects::getId,ProjectRel::getProjectId); |
| | | List<ProjectRel> projectLisr= projectRelJoinMapper.selectJoinList(ProjectRel.class,findpr); |
| | | s.setProjectList(projectLisr); |
| | | |
| | | if(!Constants.equalsInteger(s.getFileType(),Constants.TWO)){ |
| | | List<Multifile > multifileList = multifileJoinMapper.selectList(new QueryWrapper<Multifile>().lambda() |
| | | .eq(Multifile::getObjId,s.getId()) |
| | | .eq(Multifile::getObjType,Constants.FOUR) |
| | | ); |
| | | if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(multifileList)){ |
| | | for (Multifile multifile:multifileList) { |
| | | multifile.setFileurlFull(path + multifile.getFileurl()); |
| | | } |
| | | s.setMultifileList(multifileList); |
| | | } |
| | | } |
| | | }); |
| | | |
| | | return PageData.from(result); |
| | |
| | | List<ProjectRel> projectList= projectRelJoinMapper.selectJoinList(ProjectRel.class,findProjectRel); |
| | | |
| | | roomsResponse.setProjectList(projectList); |
| | | if(Objects.nonNull(roomsResponse.getFileType()) && !Constants.equalsInteger(roomsResponse.getFileType(),Constants.TWO)){ |
| | | roomsResponse.setMultifileList( |
| | | multifileJoinMapper.selectList(new QueryWrapper<Multifile>().lambda().eq(Multifile::getObjId,roomsResponse.getId()) |
| | | .eq(Multifile::getObjType,Constants.FOUR)) |
| | | ); |
| | | } |
| | | |
| | | |
| | | return roomsResponse; |
| | | } |
| | |
| | | @ExcelColumn(name="ç±»å0å¾ç 1è§é¢ 2å
¶ä»") |
| | | private Integer type; |
| | | |
| | | @ApiModelProperty(value = "å
³è对象类å 0ä¼è®®å®¤é¢å®éä»¶", example = "1") |
| | | @ExcelColumn(name="å
³è对象类å 0ä¼è®®å®¤é¢å®éä»¶") |
| | | @ApiModelProperty(value = "å
³è对象类å 0鿣ç°åºæ
åµ 1鿣å¤çåæ
åµ 2鿣å¤çåæ
åµ 3鿣éå说æ 4ä¼è®®å®¤æä»¶", example = "1") |
| | | @ExcelColumn(name="å
³è对象类å 0鿣ç°åºæ
åµ 1鿣å¤çåæ
åµ 2鿣å¤çåæ
åµ 3鿣éå说æ 4ä¼è®®å®¤æä»¶") |
| | | private Integer objType; |
| | | |
| | | @ApiModelProperty(value = "æä»¶å°å") |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.dao.admin.response; |
| | | |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * Created by IntelliJ IDEA. |
| | | * |
| | | * @Author : Rk |
| | | * @create 2024/2/26 11:02 |
| | | */ |
| | | @Data |
| | | @ApiModel("å·¥ä½å°ç¸å
³æ¹æ°æ®") |
| | | public class InterestedListVO { |
| | | |
| | | @ApiModelProperty(value = "人æ°") |
| | | private Long userNum; |
| | | |
| | | @ApiModelProperty(value = "åç§°") |
| | | private String interestedName; |
| | | |
| | | } |
| | |
| | | @ApiModelProperty(value = "åºå车次") |
| | | private Long todayOutCarNum; |
| | | |
| | | |
| | | @ApiModelProperty(value = "ç¸å
³æ¹æ°æ®") |
| | | private List<InterestedListVO> interestedListVOList; |
| | | |
| | | |
| | | |
| | |
| | | |
| | | @Autowired |
| | | private HiddenDangerMapper hiddenDangerMapper; |
| | | |
| | | @Autowired |
| | | private MultifileMapper multifileMapper; |
| | | |
| | | @Autowired |
| | | private SystemDictDataBiz systemDictDataBiz; |
| | | |
| | | @Autowired |
| | | private MemberMapper memberMapper; |
| | | |
| | |
| | | .set(Notices::getReaded,Constants.ONE) |
| | | .set(Notices::getStatus,Constants.ONE) |
| | | .set(Notices::getParam2,hiddenDanger.getStatus()) |
| | | .set(Notices::getParam4,hiddenDanger.getLoginUserInfo().getMemberId()) |
| | | .eq(Notices::getObjId,hiddenDanger.getId()) |
| | | .eq(Notices::getObjType,Constants.THREE) |
| | | .eq(Notices::getUserId,hiddenDanger.getLoginUserInfo().getMemberId()) |