From 1d064aa5ec2556155bbf116cef1d6d0ac5007acc Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期一, 29 九月 2025 10:23:44 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/wuhuyancao' into wuhuyancao
---
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/MemberCloudController.java | 11
h5/package-lock.json | 13
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/VisitorWebController.java | 16
h5/static/loading.gif | 0
h5/pages/index/index.vue | 1
server/system_service/src/main/java/com/doumee/dao/system/dto/LoginH5DTO.java | 3
h5/pages/appointment/appointment.vue | 678 +++++++++++++++++++++++++++++
h5/package.json | 1
server/system_service/src/main/java/com/doumee/service/system/impl/SystemLoginServiceImpl.java | 33 +
h5/pages/loading/loading.vue | 83 +++
h5/static/ic_fail.png | 0
server/system_service/src/main/java/com/doumee/dao/system/dto/LoginPhoneDTO.java | 2
server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/DDAuthorizeVO.java | 24 +
h5/pages.json | 14
server/system_service/src/main/java/com/doumee/dao/system/dto/LoginDTO.java | 3
h5/utils/config.js | 4
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java | 108 ++++
h5/pages/login/login.vue | 56 +-
h5/pages/driver/notice.vue | 6
server/system_service/src/main/java/com/doumee/dao/system/model/SystemUser.java | 2
h5/utils/service.js | 8
h5/utils/http.interceptor.js | 10
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/MemberService.java | 7
server/visits/dmvisit_service/src/main/java/com/doumee/core/dingTalk/DingTalkStream.java | 2
h5/pages/notice/notice.vue | 10
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/BoardServiceImpl.java | 10
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java | 20
h5/App.vue | 27
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java | 6
h5/utils/getCode.js | 23 +
h5/pages/answer/answer.vue | 2
server/visits/dmvisit_service/src/main/java/com/doumee/core/dingTalk/DingTalk.java | 138 ++++++
32 files changed, 1,223 insertions(+), 98 deletions(-)
diff --git a/h5/App.vue b/h5/App.vue
index 2fb62ad..6d141ba 100644
--- a/h5/App.vue
+++ b/h5/App.vue
@@ -6,20 +6,19 @@
} from '@/api'
export default {
onLaunch: function() {
- window.addEventListener("popstate", (event) => {
- const path = this.$route.fullPath
- // console.log('path', path);
- if (path == '/pages/login/login' || path == '/') {
- window.location.href = app_url
- }
- if (path == '/pages/wdata/home') {
- window.location.href = 'https://atwl.ahzyssl.com/zhyq_h5/#/pages/wdata/home'
- }
- if (path == '/pages/waybill/home') {
- window.location.href = 'https://atwl.ahzyssl.com/zhyq_h5/#/pages/waybill/home'
- }
- })
- uni.setStorageSync('transportList', [])
+ // window.addEventListener("popstate", (event) => {
+ // const path = this.$route.fullPath
+ // if (path == '/pages/login/login' || path == '/') {
+ // window.location.href = app_url
+ // }
+ // if (path == '/pages/wdata/home') {
+ // window.location.href = 'https://atwl.ahzyssl.com/zhyq_h5/#/pages/wdata/home'
+ // }
+ // if (path == '/pages/waybill/home') {
+ // window.location.href = 'https://atwl.ahzyssl.com/zhyq_h5/#/pages/waybill/home'
+ // }
+ // })
+ // uni.setStorageSync('transportList', [])
console.log('onLaunch')
},
onShow: function() {
diff --git a/h5/package-lock.json b/h5/package-lock.json
index e0ea285..da7f0a2 100644
--- a/h5/package-lock.json
+++ b/h5/package-lock.json
@@ -27,11 +27,24 @@
"resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.13.tgz",
"integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg=="
},
+ "dingtalk-jsapi": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmmirror.com/dingtalk-jsapi/-/dingtalk-jsapi-3.2.0.tgz",
+ "integrity": "sha512-PZhTM1T9ERdaOzjFbyokegVmf/vUVvlg0BKcMiP1bB0e3vBflroPpbW2SjrZEKuvFxFtuFDpvYpk2EhbbKH/6Q==",
+ "requires": {
+ "promise-polyfill": "^7.1.0"
+ }
+ },
"mutation-observer": {
"version": "1.0.3",
"resolved": "https://registry.npmmirror.com/mutation-observer/-/mutation-observer-1.0.3.tgz",
"integrity": "sha512-M/O/4rF2h776hV7qGMZUH3utZLO/jK7p8rnNgGkjKUw8zCGjRQPxB8z6+5l8+VjRUQ3dNYu4vjqXYLr+U8ZVNA=="
},
+ "promise-polyfill": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmmirror.com/promise-polyfill/-/promise-polyfill-7.1.2.tgz",
+ "integrity": "sha512-FuEc12/eKqqoRYIGBrUptCBRhobL19PS2U31vMNTfyck1FxPyMfgsXyW4Mav85y/ZN1hop3hOwRlUDok23oYfQ=="
+ },
"regenerator-runtime": {
"version": "0.14.1",
"resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz",
diff --git a/h5/package.json b/h5/package.json
index 3f666de..48cc685 100644
--- a/h5/package.json
+++ b/h5/package.json
@@ -14,6 +14,7 @@
},
"dependencies": {
"dayjs": "^1.11.13",
+ "dingtalk-jsapi": "^3.2.0",
"uniapp-qrcode": "^1.0.2",
"uview-ui": "^2.0.37",
"vconsole": "^3.15.1"
diff --git a/h5/pages.json b/h5/pages.json
index 7d64341..4a75021 100644
--- a/h5/pages.json
+++ b/h5/pages.json
@@ -503,6 +503,20 @@
{
"navigationBarTitleText" : "閫夋嫨琚浜�"
}
+ },
+ {
+ "path" : "pages/appointment/appointment",
+ "style" :
+ {
+ "navigationBarTitleText" : "棰勭害"
+ }
+ },
+ {
+ "path" : "pages/loading/loading",
+ "style" :
+ {
+ "navigationBarTitleText" : "鎺堟潈"
+ }
}
],
"subPackages": [
diff --git a/h5/pages/answer/answer.vue b/h5/pages/answer/answer.vue
index e9f232e..54723fe 100644
--- a/h5/pages/answer/answer.vue
+++ b/h5/pages/answer/answer.vue
@@ -412,7 +412,7 @@
}).then(res => {
this.score = 0
uni.navigateTo({
- url: `/pages/userinfo/userinfo?answerId=${res.data}`
+ url: `/pages/appointment/appointment?answerId=${res.data}`
})
})
diff --git a/h5/pages/appointment/appointment.vue b/h5/pages/appointment/appointment.vue
new file mode 100644
index 0000000..a4833a4
--- /dev/null
+++ b/h5/pages/appointment/appointment.vue
@@ -0,0 +1,678 @@
+<template>
+ <view class="container">
+ <view class="visitor-form">
+ <view class="cell">
+ <view class="title"><b>*</b>濮撳悕</view>
+ <view class="content">
+ <input class="input" @focus="showKeyboard = true" @blur="showKeyboard = false"
+ placeholder-style="color: #999999;" maxlength="30" v-model="visitorData.name" placeholder="璇疯緭鍏ユ偍鐨勭湡瀹炲鍚�" />
+ </view>
+ </view>
+ <view class="cell">
+ <view class="title"><b>*</b>鎵嬫満鍙�</view>
+ <view class="content">
+ <input type="number" @focus="showKeyboard = true" @blur="showKeyboard = false" class="input" maxlength="11"
+ placeholder-style="color: #999999;" v-model="visitorData.phone" placeholder="璇疯緭鍏ユ偍鐨勬墜鏈哄彿" />
+ </view>
+ </view>
+ <view class="cell">
+ <view class="title"><b>*</b>璇佷欢绫诲瀷</view>
+ <view class="content" @click="show = true">
+ <text
+ :style="{color: visitorData.idcardTypeName ? '#000000' : ''}">{{visitorData.idcardTypeName ? visitorData.idcardTypeName : '璇烽�夋嫨'}}</text>
+ <u-icon name="arrow-right" color="#CCCCCC" size="16" class="ml6"></u-icon>
+ </view>
+ </view>
+ <view class="cell">
+ <view class="title">璇佷欢鍙风爜</view>
+ <view class="content">
+ <input class="input" maxlength="18" @focus="showKeyboard = true" @blur="showKeyboard = false"
+ placeholder-style="color: #999999;" v-model="visitorData.idcardNo" placeholder="璇疯緭鍏ユ偍鐨勮瘉浠跺彿鐮�" />
+ </view>
+ </view>
+ <view class="empty"></view>
+ <view class="cell">
+ <view class="title"><b>*</b>鍏徃鍚嶇О</view>
+ <view class="content">
+ <input class="input" maxlength="50" @focus="showKeyboard = true" @blur="showKeyboard = false"
+ placeholder-style="color: #999999;" v-model="visitorData.companyName" placeholder="璇疯緭鍏ユ偍鐨勫叕鍙稿悕绉�" />
+ </view>
+ </view>
+ <view class="cell">
+ <view class="title1">
+ <text class="title1_a"><b>*</b>浜鸿劯鐓х墖</text>
+ <text class="title1_b">1銆佽鎻愪緵浜斿畼娓呮櫚锛屼汉鑴稿眳涓殑姝i潰浜鸿劯鍏嶅啝鐓х墖锛�</text>
+ <text class="title1_b">2銆佺収鐗囨棤閫嗗厜銆佹棤PS銆佹棤杩囧害缇庨澶勭悊</text>
+ </view>
+ <view class="content">
+ <view class="content_uplaod" @click="upload('faceImg')" v-if="!visitorData.faceImgUrl">
+ <u-icon name="plus" color="rgb(153, 153, 153)" size="20"></u-icon>
+ </view>
+ <view class="content_uplaod" @click="upload('faceImg')" v-else>
+ <image :src="visitorData.faceImgUrl" mode="widthFix"></image>
+ </view>
+ </view>
+ </view>
+ <view style="height: 20rpx; background-color: #F7F7F7;"></view>
+ <view class="cell">
+ <view class="title"><b>*</b>琚浜�</view>
+ <view class="content" @click="selName">
+ <text
+ :style="{ color: form1.receptMemberName ? '#000000' : '' }">{{form1.receptMemberName ? form1.receptMemberName : "璇烽�夋嫨"}}</text>
+ <u-icon name="arrow-right" color="#CCCCCC" size="16" class="ml6"></u-icon>
+ </view>
+ </view>
+ <view class="cell">
+ <view class="title"><b>*</b>鍏ュ洯鏃堕棿</view>
+ <view class="content" @click="show4 = true">
+ <text
+ :style="{color: form1.starttime ? '#000000' : ''}">{{form1.starttime ? form1.starttime : '璇烽�夋嫨'}}</text>
+ <u-icon name="arrow-right" color="#CCCCCC" size="16" class="ml6"></u-icon>
+ </view>
+ </view>
+ <view class="cell">
+ <view class="title"><b>*</b>绂诲洯鏃堕棿</view>
+ <view class="content" @click="openLC">
+ <text
+ :style="{color: form1.endtime ? '#000000' : ''}">{{form1.endtime ? form1.endtime : '璇烽�夋嫨'}}</text>
+ <u-icon name="arrow-right" color="#CCCCCC" size="16" class="ml6"></u-icon>
+ </view>
+ </view>
+ <view class="cell">
+ <view class="title"><b>*</b>鎷滆浜嬬敱</view>
+ <view class="content" @click="showReason = true">
+ <text
+ :style="{color: form1.reason ? '#000000' : ''}">{{form1.reason ? form1.reason : '璇烽�夋嫨'}}</text>
+ <u-icon name="arrow-right" color="#CCCCCC" size="16" class="ml6"></u-icon>
+ </view>
+ </view>
+ <view class="cell" v-if="form1.type == 1">
+ <view class="title">鏂藉伐鍐呭</view>
+ <view class="content">
+ <input class="input" @focus="showKeyboard = true" @blur="showKeyboard = false"
+ placeholder-style="color: #999999;" maxlength="30" v-model="form1.constructionReason" placeholder="璇疯緭鍏ユ柦宸ュ唴瀹�" />
+ </view>
+ </view>
+ <view class="cell">
+ <view class="title">闅忚杞﹁締</view>
+ <view class="content" @click="openInput(1)">
+ <text :style="{color: form1.carNos ? '#000000' : ''}">{{form1.carNos ? form1.carNos : '璇疯緭鍏ヨ溅鐗屽彿鐮�'}}</text>
+ </view>
+ </view>
+ <!-- <view class="cell">
+ <view class="title">鍋ュ悍璇�<b v-if="visit === '1'">*</b></view>
+ <view class="content">
+ <view class="content_uplaod" @click="upload('imgurl')" v-if="!visitorData.imgurlUrl">
+ <u-icon name="plus" color="rgb(153, 153, 153)" size="28"></u-icon>
+ </view>
+ <view class="content_uplaod" @click="upload('imgurl')" v-else>
+ <image :src="visitorData.imgurlUrl" mode="widthFix"></image>
+ </view>
+ </view>
+ </view> -->
+ </view>
+ <view style="width: 100%; height: 110rpx;" v-if="!showKeyboard"></view>
+ <view v-if="!showKeyboard" class="footer-box">
+ <view class="submit-button" @click="submit">涓嬩竴姝�</view>
+ </view>
+ <!-- <tly-picture-cut ref="tlyPictureCut" :pictureSrc="photoSrc" @createImg="uploadImg"></tly-picture-cut> -->
+ <u-picker :show="show" :columns="columns" keyName="name" @cancel="show = false" @confirm="confirm"></u-picker>
+ <qf-image-cropper ref="cropper" :width="280" :height="280" :radius="0" fileType="jpg"
+ @crop="uploadImg"></qf-image-cropper>
+ <keyboardInput ref="keyboard" @export="setPlate" @close="closeInput" />
+ <!-- 鍏ュ洯鏃堕棿 -->
+ <u-datetime-picker :show="show4" :minDate="new Date().getTime()" :formatter="formatter" mode="datetime"
+ @cancel="show4 = false" @confirm="setstarttime"></u-datetime-picker>
+ <!-- 绂诲洯鏃堕棿 -->
+ <u-datetime-picker v-if="form1.starttime" :show="show5" :formatter="formatter"
+ :minDate="formatTimeStamp(form1.starttime)" :maxDate="formatTimeStamp(form1.starttime.slice(0,10) + ' 23:59')"
+ mode="datetime" @cancel="show5 = false" @confirm="setendtime"></u-datetime-picker>
+ <u-picker keyName="title" :show="showReason" :columns="VisitReason" @confirm="selectedReason"
+ @cancel="showReason = false"></u-picker>
+ </view>
+</template>
+
+<script>
+ import tlyPictureCut from "@/components/tly-picture-cut/tlyPictureCut.vue";
+ import keyboardInput from "@/components/keyboard-input/keyboard-input.vue"
+ import QfImageCropper from '@/uni_modules/qf-image-cropper/components/qf-image-cropper/qf-image-cropper.vue';
+ import {
+ mapState
+ } from 'vuex'
+ import {
+ uploadAvatar
+ } from "@/utils/config"
+ import {
+ getSystemDictData,
+ visitorSub,
+ getVisitedVisitReason,
+ createFk
+ } from '@/api'
+ export default {
+ data() {
+ return {
+ photoSrc: "",
+ inputType: '',
+ show: false,
+ showKeyboard: false,
+ visit: '',
+ type: '',
+ show4: false,
+ show5: false,
+ showReason: false,
+ personnel: [],
+ VisitReason: [],
+ columns: [
+ [{
+ name: '韬唤璇�',
+ id: 0
+ }, {
+ name: '娓境璇佷欢',
+ id: 1
+ }, {
+ name: '鎶ょ収',
+ id: 2
+ }]
+ ],
+ fileList: [],
+ visitorData: {
+ userAnswerId: '',
+ name: '',
+ phone: '',
+ idcardType: 0,
+ idcardTypeName: '韬唤璇�',
+ idcardNo: '',
+ faceImg: '',
+ faceImgUrl: '',
+ imgurl: '',
+ imgurlUrl: '',
+ companyName: ''
+ },
+ form1: {
+ phone1: '',
+ receptMemberId: '',
+ receptMemberName: '',
+ starttime: '',
+ endtime: '',
+ doors: '',
+ doorSelectName: '',
+ reason: '',
+ carNos: '',
+ type: 0
+ },
+ withUserList: {
+ name: '',
+ phone: '',
+ idcardType: '',
+ idcardTypeName: '',
+ companyName: '',
+ idcardNo: '',
+ faceImg: '',
+ faceImgUrl: '',
+ imgurl: '',
+ imgurlUrl: ''
+ },
+ }
+ },
+ components: {
+ tlyPictureCut,
+ QfImageCropper,
+ keyboardInput
+ },
+
+ onLoad(option) {
+ this.getUser()
+ const visitorData = uni.getStorageSync('member')
+ if (visitorData.faceImg) {
+ visitorData.faceImgUrl = visitorData.prefixUrl + visitorData.faceImg
+ }
+ if (visitorData && visitorData.name) {
+ this.visitorData = visitorData
+ }
+ this.visitorData.companyName = visitorData.visitCompanyName
+ this.visitorData.idcardNo = visitorData.idcardDecode
+ if (this.visitorData.idcardType === 0) {
+ this.visitorData.idcardTypeName = '韬唤璇�'
+ } else if (this.visitorData.idcardType === 1) {
+ this.visitorData.idcardTypeName = '娓境璇佷欢'
+ } else if (this.visitorData.idcardType === 2) {
+ this.visitorData.idcardTypeName = '鎶ょ収'
+ }
+ if (this.visitorData.imgurl) {
+ this.visitorData.imgurlUrl = this.visitorData.prefixUrl + this.visitorData.imgurl
+ }
+ // if (this.member ) {
+ // this.visitorData.name = this.member.name
+ // this.visitorData.phone = this.member.phone
+ // this.visitorData.idcardNo = this.member.idcardDecode
+ // this.visitorData.companyName = this.member.visitCompanyName
+ // this.visitorData.faceImg = this.member.faceImg
+ // if (this.member.faceImg) {
+ // this.visitorData.faceImgUrl = this.member.prefixUrl + this.member.faceImg
+ // }
+ // this.visitorData.imgurl = this.member.imgurl
+ // if (this.member.imgurl) {
+ // this.visitorData.imgurlUrl = this.member.prefixUrl + this.member.imgurl
+ // }
+ // this.visitorData.idcardType = this.member.idcardType
+ // if (this.member.idcardType === 0) {
+ // this.visitorData.idcardTypeName = '韬唤璇�'
+ // } else if (this.member.idcardType === 1) {
+ // this.visitorData.idcardTypeName = '娓境璇佷欢'
+ // } else if (this.member.idcardType === 2) {
+ // this.visitorData.idcardTypeName = '鎶ょ収'
+ // }
+ // }
+ this.visitorData.userAnswerId = option.answerId || ''
+ // this.getVisit()
+ // uni.$on('update', (data) => {
+ // this.uploadImg(data.tempFilePath)
+ // })
+ },
+ mounted() {
+ this.$eventBus.$on('svisitorAppSel', (option) => {
+ // this.$set(this.param, 'checkUserId', option.id)
+ // this.$set(this.param, 'applyCheckUserId', option.id)
+ // this.$set(this.param, 'checkorName', option.name)
+
+ this.form1.receptMemberName = option.name
+ this.form1.receptMemberId = option.id
+ this.form1.receptMemberDepartment = option.companyName
+ })
+ },
+ methods: {
+ selectedReason(e) {
+ this.form1.reason = e.value[0].title
+ this.form1.type = e.value[0].constructionType
+ this.showReason = false
+ },
+ // 鏌ヨ鐢ㄦ埛
+ getUser() {
+ getVisitedVisitReason({}).then(res => {
+ this.VisitReason = [res.data || []]
+ })
+ },
+ setendtime(e) {
+ this.form1.endtime = uni.$u.timeFormat(e.value, 'yyyy-mm-dd hh:MM')
+ this.show5 = false
+ },
+ formatTimeStamp(date) {
+ return Date.parse(new Date(`${date}`)) || Date.parse(new Date(`${date.replace(/-/g, '/')}`))
+ },
+ openLC() {
+ if (!this.form1.starttime) return uni.showToast({
+ title: '璇峰厛閫夋嫨鍏ュ洯鏃堕棿',
+ icon: 'none'
+ })
+ this.show5 = true
+ },
+ setstarttime(e) {
+ this.form1.starttime = uni.$u.timeFormat(e.value, 'yyyy-mm-dd hh:MM')
+ this.maxTime = this.form1.starttime
+ this.show4 = false
+ },
+ formatter(type, value) {
+ if (type === 'year') {
+ return `${value}骞碻
+ }
+ if (type === 'month') {
+ return `${value}鏈坄
+ }
+ if (type === 'day') {
+ return `${value}鏃
+ }
+ if (type === 'hour') {
+ return `${value}鏃禶
+ }
+ if (type === 'minute') {
+ return `${value}鍒哷
+ }
+ return value
+ },
+ closeInput() {
+ this.$refs.keyboard.close()
+ },
+ setPlate(e) {
+ if (this.inputType === 1) {
+ this.form1.carNos = e
+ } else if (this.inputType === 2) {
+ this.withUserList.carNos = e
+ }
+ this.$forceUpdate()
+ this.closeInput()
+ },
+ openInput(type) {
+ this.inputType = type
+ this.$refs.keyboard.open()
+ },
+ selName() {
+ uni.navigateTo({
+ url: '/pages/visitorApplication/memberSel'
+ })
+ },
+ submit() {
+ const {
+ visitorData
+ } = this
+ if (!this.visitorData.name) return uni.showToast({
+ title: '濮撳悕涓嶈兘涓虹┖',
+ icon: 'none'
+ })
+ if (!this.visitorData.phone) return uni.showToast({
+ title: '鎵嬫満鍙蜂笉鑳戒负绌�',
+ icon: 'none'
+ })
+ const regExp = /^1[3456789]\d{9}$/;
+ if (!regExp.test(this.visitorData.phone)) return uni.showToast({
+ title: '鎵嬫満鍙锋牸寮忛敊璇�',
+ icon: 'none'
+ })
+ if (!String(this.visitorData.idcardType)) return uni.showToast({
+ title: '璇佷欢绫诲瀷涓嶈兘涓虹┖',
+ icon: 'none'
+ })
+ // if (!this.visitorData.idcardNo) return uni.showToast({
+ // title: '璇佷欢鍙风爜涓嶈兘涓虹┖',
+ // icon: 'none'
+ // })
+ if (this.visitorData.idcardType === 0 && this.visitorData.idcardNo) {
+ const regex = /^[1-9]\d{5}(19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[1-2]\d|3[0-1])\d{3}[\dxX]$/;
+ if (!regex.test(this.visitorData.idcardNo)) return uni.showToast({
+ title: '璇佷欢鍙风爜鏍煎紡閿欒',
+ icon: 'none'
+ })
+ }
+ if (!this.visitorData.companyName) return uni.showToast({
+ title: '鍏徃涓嶈兘涓虹┖',
+ icon: 'none'
+ })
+ if (!this.visitorData.faceImg) return uni.showToast({
+ title: '浜鸿劯鐓х墖涓嶈兘涓虹┖',
+ icon: 'none'
+ })
+ // if (this.visit === '1') {
+ // if (!this.visitorData.imgurl) return uni.showToast({
+ // title: '鍋ュ悍璇佷笉鑳戒负绌�',
+ // icon: 'none'
+ // })
+ // }
+ if (!this.form1.receptMemberId) return uni.showToast({
+ title: '璇峰~鍐欐湁鏁堢殑璁块棶浜�',
+ icon: 'none'
+ })
+ if (!this.form1.starttime) return uni.showToast({
+ title: '鍏ュ洯鏃堕棿涓嶈兘涓虹┖',
+ icon: 'none'
+ })
+ if (!this.form1.endtime) return uni.showToast({
+ title: '绂诲洯鏃堕棿涓嶈兘涓虹┖',
+ icon: 'none'
+ })
+ if (!this.form1.doorSelectName && this.accessControl == 1) return uni.showToast({
+ title: '璁块棶闂ㄧ涓嶈兘涓虹┖',
+ icon: 'none'
+ })
+ if (!this.form1.reason) return uni.showToast({
+ title: '鎷滆浜嬬敱涓嶈兘涓虹┖',
+ icon: 'none'
+ })
+ let data = JSON.parse(JSON.stringify(this.form1))
+ data.starttime = data.starttime + ':00'
+ data.endtime = data.endtime + ':00'
+ createFk({
+ ...this.visitorData,
+ ...data,
+ withUserList: this.personnel
+ }).then(res => {
+ if (res.code === 200) {
+ uni.navigateTo({
+ url: `/pages/appointmentDetails/appointmentDetails?id=${res.data}`
+ })
+ }
+ })
+ // uni.setStorageSync('visitorData', this.visitorData)
+ // uni.navigateTo({
+ // url: `/pages/visitorApplication/visitorApplication?data=${JSON.stringify(this.visitorData)}`
+ // });
+ },
+ getVisit() {
+ // 鏄惁闇�瑕� 鍋ュ悍璇�
+ getSystemDictData({
+ dictCode: 'SYSTEM',
+ label: 'HEALTH_CARD'
+ }).then(res => {
+ if (res.code === 200) {
+ this.visit = res.data.code
+ }
+ })
+ },
+ uploadImg(file) {
+ var that = this
+ that.$refs.cropper.close()
+ uni.showLoading({
+ title: '涓婁紶涓�',
+ mask: true
+ });
+ uni.uploadFile({
+ url: uploadAvatar,
+ filePath: file.tempFilePath,
+ name: 'file',
+ formData: {
+ folderCode: 'MEMBER_IMG',
+ // isFace: 0
+ },
+ success: (uploadFileRes) => {
+ let res = JSON.parse(uploadFileRes.data)
+ if(res.code !== 200){
+ return this.showToast(res.message)
+ }
+ this.visitorData.faceImg = res.data.halfPath
+ this.visitorData.faceImgUrl = res.data.prefixPath + res.data.folder + res.data.halfPath
+ },
+ fail: (err) => {
+ // this.showToast(err)
+ },
+ complete() {
+ uni.hideLoading();
+ }
+ });
+ },
+ deleUser(i) {
+ this.personnel.splice(i, 1)
+ },
+ upload(type) {
+ var that = this
+ that.type = type
+ if (type === 'faceImg') {
+ that.$refs.cropper.chooseImage()
+ return
+ }
+ uni.chooseImage({
+ count: 1,
+ success: (chooseImageRes) => {
+ // if (type === 'faceImg') {
+ // that.photoSrc = chooseImageRes.tempFilePaths[0];
+ // that.$refs.tlyPictureCut.showPop();
+ // }
+ if (type === 'imgurl') {
+ uni.showLoading({
+ title: '涓婁紶涓�',
+ mask: true
+ });
+ uni.uploadFile({
+ url: uploadAvatar,
+ filePath: chooseImageRes.tempFilePaths[0],
+ name: 'file',
+ formData: {
+ folderCode: 'MEMBER_IMG'
+ },
+ timeout: 60000,
+ success: (uploadFileRes) => {
+ let res = JSON.parse(uploadFileRes.data)
+ that.visitorData.imgurl = res.data.halfPath
+ that.visitorData.imgurlUrl = res.data.prefixPath + res.data.folder + res.data.halfPath
+ },
+ complete() {
+ uni.hideLoading();
+ }
+ });
+ }
+ },
+ fail(err) {
+ alert('api鎶ラ敊')
+ }
+ });
+ },
+ confirm(e) {
+ this.visitorData.idcardType = e.value[0].id
+ this.visitorData.idcardTypeName = e.value[0].name
+ this.show = false
+ }
+ }
+ }
+</script>
+
+<style lang="scss">
+ page {
+ background-color: #F7F7F7 !important;
+ }
+
+ .u-upload__button {
+ margin: 0 !important;
+ }
+
+ .content_uplaod {
+ width: 120rpx;
+ height: 120rpx;
+ background: #F7F7F7;
+ border-radius: 8rpx;
+ border: 2rpx solid #E5E5E5;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ overflow: hidden;
+ }
+
+ .content_uplaod image {
+ width: 100%;
+ height: 100%;
+ }
+
+ .empty {
+ width: 750rpx;
+ height: 20rpx;
+ margin: 0 -30rpx;
+ background-color: #f7f7f7;
+ ;
+ }
+
+ .title {
+ font-size: 30rpx;
+ font-weight: 400;
+ color: #222222;
+ display: flex;
+ align-items: center;
+ }
+
+ .title b {
+ color: #E42D2D;
+ margin-right: 4rpx;
+ }
+
+ .title1 {
+ display: flex;
+ flex-direction: column;
+
+ .title1_a {
+ font-size: 30rpx !important;
+ font-weight: 400;
+ color: #222222;
+ display: flex;
+ align-items: center;
+ margin-bottom: 20rpx;
+
+ b {
+ color: #E42D2D;
+ margin-right: 4rpx;
+
+ }
+ }
+
+ .title1_b {
+ font-size: 24rpx !important;
+ font-weight: 400;
+ color: #999999;
+ }
+ }
+
+ .add-other {
+ border: 1rpx solid #4d99a8;
+ color: #4d99a8;
+ font-size: 11rpx;
+ padding: 0 12rpx;
+ height: 32rpx;
+ line-height: 32rpx;
+ width: 120rpx;
+ text-align: center;
+ border-radius: 24rpx;
+ margin: 20rpx auto;
+ }
+
+ .footer-box {
+ width: 100%;
+ position: fixed;
+ bottom: 30rpx;
+ height: 80rpx;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ }
+
+ .submit-button {
+ width: calc(100% - 60rpx);
+ height: 88rpx;
+ line-height: 88rpx;
+ background: #4d99a8;
+ border-radius: 4rpx;
+ color: #fff;
+ border-radius: 44rpx;
+ font-size: 32rpx;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ }
+</style>
+
+<style lang="scss" scoped>
+ .popup-content {
+ padding: 20rpx;
+ height: 100%;
+ overflow: hidden;
+ display: flex;
+ flex-flow: column;
+
+ .input {
+ border: 1rpx solid #ccc;
+ border-radius: 4rpx;
+ padding: 4rpx 12rpx;
+ font-size: 28rpx;
+ font-weight: 400;
+ color: #333333;
+ }
+
+ .respondent-item {
+ padding: 10rpx;
+ border-bottom: 1rpx solid #eee;
+ cursor: pointer;
+
+ &:hover {
+ background-color: #eee;
+ }
+ }
+
+ .van-list {
+ flex: 1;
+ overflow: auto;
+ }
+ }
+</style>
\ No newline at end of file
diff --git a/h5/pages/driver/notice.vue b/h5/pages/driver/notice.vue
index 27be0c1..4d4e993 100644
--- a/h5/pages/driver/notice.vue
+++ b/h5/pages/driver/notice.vue
@@ -30,9 +30,9 @@
},
onLoad() {
this.getInfo()
- if (!this.$store.state.openId) {
- // this.initToken()
- }
+ // if (!this.$store.state.openId) {
+ // this.initToken()
+ // }
},
methods: {
initToken() {
diff --git a/h5/pages/index/index.vue b/h5/pages/index/index.vue
index 6e9fb01..7300f5f 100644
--- a/h5/pages/index/index.vue
+++ b/h5/pages/index/index.vue
@@ -58,6 +58,7 @@
jump(type) {
switch (type) {
case 1:
+ console.log('1')
uni.navigateTo({
url: '/pages/notice/notice'
})
diff --git a/h5/pages/loading/loading.vue b/h5/pages/loading/loading.vue
new file mode 100644
index 0000000..335064a
--- /dev/null
+++ b/h5/pages/loading/loading.vue
@@ -0,0 +1,83 @@
+<template>
+ <view class="box">
+ <!-- 鍔犺浇涓� -->
+ <view class="loading" v-if="loading === 'loading'">
+ <image src="/static/loading.gif" mode="widthFix"></image>
+ <text>韬唤鏍¢獙涓紝璇风◢鍚巭</text>
+ </view>
+ <!-- 澶辫触 -->
+ <view class="error" v-if="loading === 'error'">
+ <image src="/static/ic_fail.png" mode="widthFix"></image>
+ <text class="title">鎺堟潈澶辫触</text>
+ <text class="desc">鎮ㄧ殑璐﹀彿鏆傛湭缁戝畾绯荤粺锛岃鑱旂郴绠$悊鍛�</text>
+ <button>閲嶆柊楠岃瘉</button>
+ </view>
+ </view>
+</template>
+
+<script>
+ export default {
+ data() {
+ return {
+ loading: 'error'
+ };
+ }
+ }
+</script>
+
+<style lang="scss" scoped>
+ .box {
+ width: 100%;
+ .error {
+ width: 100%;
+ display: flex;
+ align-items: center;
+ flex-direction: column;
+ image {
+ width: 180rpx;
+ height: 180rpx;
+ margin-top: 160rpx;
+ }
+ .title {
+ font-weight: 500;
+ font-size: 36rpx;
+ color: #333333;
+ margin-top: 32rpx;
+ }
+ .desc {
+ font-weight: 400;
+ font-size: 26rpx;
+ color: #999999;
+ margin-top: 20rpx;
+ }
+ button {
+ width: 224rpx;
+ height: 76rpx;
+ font-weight: 400;
+ font-size: 28rpx;
+ color: #279BAA;
+ border-radius: 38rpx;
+ border: 1rpx solid #279BAA;
+ margin-top: 68rpx;
+ background-color: #ffffff;
+ }
+ }
+ .loading {
+ width: 100%;
+ display: flex;
+ align-items: center;
+ flex-direction: column;
+ image {
+ width: 200rpx;
+ height: 200rpx;
+ margin-top: 202rpx;
+ }
+ text {
+ font-weight: 500;
+ font-size: 36rpx;
+ color: #333333;
+ margin-top: 40rpx;
+ }
+ }
+ }
+</style>
diff --git a/h5/pages/login/login.vue b/h5/pages/login/login.vue
index d198595..e068cc0 100644
--- a/h5/pages/login/login.vue
+++ b/h5/pages/login/login.vue
@@ -46,37 +46,37 @@
},
onLoad(option) {
console.log('onLoad');
- if (option.ywid) {
- uni.setStorageSync('ywinfo', {
- type: option.type,
- yw: option.yw,
- ywid: option.ywid
- })
- }
+ // if (option.ywid) {
+ // uni.setStorageSync('ywinfo', {
+ // type: option.type,
+ // yw: option.yw,
+ // ywid: option.ywid
+ // })
+ // }
// https://atwl.ahzyssl.com/zhyq_h5/#/pages/login/login?type=2&yw=5&ywid=b3db2072-a453-470d-8c0d-ba3b8b256530
},
onShow() {
- var that = this
- let url = 'https://atwl.ahzyssl.com/zhyq_h5/#/'
- let code = ''
- if (window.location.href.indexOf('code=') !== -1 || this.code) {
- // if(window.location.href.indexOf('wdata') !== -1){
- // uni.redirectTo({
- // url: '/pages/wdata/home?code=' +
- // })
- // }
- const ywinfo = uni.getStorageSync('ywinfo') || {}
- if (ywinfo.ywid && (ywinfo.type || ywinfo.type == 0)) {
- this.userAuth(ywinfo.type)
- }
- } else {
- // let url = window.location.href
- const appID = 'wx173e6caf5abc718a'
- let uri = encodeURIComponent(url)
- let authURL =
- `https://open.weixin.qq.com/connect/oauth2/authorize?appid=${appID}&redirect_uri=${uri}&response_type=code&scope=snsapi_base#wechat_redirect`
- window.location.href = authURL
- }
+ // var that = this
+ // let url = 'https://atwl.ahzyssl.com/zhyq_h5/#/'
+ // let code = ''
+ // if (window.location.href.indexOf('code=') !== -1 || this.code) {
+ // // if(window.location.href.indexOf('wdata') !== -1){
+ // // uni.redirectTo({
+ // // url: '/pages/wdata/home?code=' +
+ // // })
+ // // }
+ // const ywinfo = uni.getStorageSync('ywinfo') || {}
+ // if (ywinfo.ywid && (ywinfo.type || ywinfo.type == 0)) {
+ // this.userAuth(ywinfo.type)
+ // }
+ // } else {
+ // // let url = window.location.href
+ // const appID = 'wx173e6caf5abc718a'
+ // let uri = encodeURIComponent(url)
+ // let authURL =
+ // `https://open.weixin.qq.com/connect/oauth2/authorize?appid=${appID}&redirect_uri=${uri}&response_type=code&scope=snsapi_base#wechat_redirect`
+ // window.location.href = authURL
+ // }
},
methods: {
diff --git a/h5/pages/notice/notice.vue b/h5/pages/notice/notice.vue
index fcbd3ee..ea0c8d5 100644
--- a/h5/pages/notice/notice.vue
+++ b/h5/pages/notice/notice.vue
@@ -16,6 +16,7 @@
<script>
let timer
import { getSystemDictData } from "@/api"
+import { getCode } from "@/utils/getCode.js";
export default {
name: 'Index',
data() {
@@ -27,9 +28,12 @@
},
onLoad() {
this.getInfo()
- if (!this.$store.state.openId) {
- // this.initToken()
- }
+ getCode(code => {
+ console.log('code', code)
+ });
+ // if (!this.$store.state.openId) {
+ // this.initToken()
+ // }
},
methods: {
initToken() {
diff --git a/h5/static/ic_fail.png b/h5/static/ic_fail.png
new file mode 100644
index 0000000..c54111b
--- /dev/null
+++ b/h5/static/ic_fail.png
Binary files differ
diff --git a/h5/static/loading.gif b/h5/static/loading.gif
new file mode 100644
index 0000000..6ea9db1
--- /dev/null
+++ b/h5/static/loading.gif
Binary files differ
diff --git a/h5/utils/config.js b/h5/utils/config.js
index 05ff784..70b5a4d 100644
--- a/h5/utils/config.js
+++ b/h5/utils/config.js
@@ -1,8 +1,8 @@
// export const baseUrl = 'zhyq_interface/'
-// export const baseUrl = 'http://192.168.0.173/gateway_interface/'
+export const baseUrl = 'http://192.168.1.54:10010/'
// export const baseUrl = 'http://10.50.250.253:8088/gateway_interface/'
-export const baseUrl = 'https://atwl.ahzyssl.com/zhyq_interface/'
+// export const baseUrl = 'https://atwl.ahzyssl.com/zhyq_interface/'
export const app_url = 'https://atwl.ahzyssl.com/zhyq_h5/#/'
diff --git a/h5/utils/getCode.js b/h5/utils/getCode.js
new file mode 100644
index 0000000..79b9ec5
--- /dev/null
+++ b/h5/utils/getCode.js
@@ -0,0 +1,23 @@
+import * as dd from 'dingtalk-jsapi';
+export function getCode(callback) {
+ let corpId = 'dingb14b7554444efe0a';
+ console.log(dd.env.platform)
+ if (dd.env.platform !== "notInDingTalk") {
+ dd.ready(() => {
+ //浣跨敤SDK 鑾峰彇鍏嶇櫥鎺堟潈鐮�
+ dd.runtime.permission.requestAuthCode({
+ corpId: corpId,
+ onSuccess: (info) => {
+ // 鏍规嵁閽夐拤鎻愪緵鐨刟pi 鑾峰緱code鍚�,鍐嶆璋冪敤杩欎釜callback鏂规硶
+ // 鐢变簬鏄拤閽夎幏鍙朿ode鏄紓姝ユ搷浣�,涓嶇煡閬撲粈涔堟椂鍊欐墽琛屽畬姣�
+ // callback 鍑芥暟浼氱瓑浠栨墽琛屽畬姣曞悗鍦ㄨ嚜宸辫皟鐢ㄨ嚜宸�
+ callback(info.code)
+ },
+ onFail: (err) => {
+ alert('fail');
+ alert(JSON.stringify(err));
+ },
+ });
+ });
+ }
+}
\ No newline at end of file
diff --git a/h5/utils/http.interceptor.js b/h5/utils/http.interceptor.js
index 6d17428..a136b00 100644
--- a/h5/utils/http.interceptor.js
+++ b/h5/utils/http.interceptor.js
@@ -18,11 +18,11 @@
uni.$u.http.interceptors.response.use((response) => {
uni.hideLoading();
// 鐧诲綍杩囨湡
- if (response.data.code === 401) {
- uni.navigateTo({
- url: '/packageA/loginAgain/loginAgain'
- });
- }
+ // if (response.data.code === 401) {
+ // uni.navigateTo({
+ // url: '/packageA/loginAgain/loginAgain'
+ // });
+ // }
if (response.data.code !== 200) {
uni.showToast({
title: response.data.message,
diff --git a/h5/utils/service.js b/h5/utils/service.js
index 55d60a4..4d7a31a 100644
--- a/h5/utils/service.js
+++ b/h5/utils/service.js
@@ -39,10 +39,10 @@
'title': '鏈嶅姟鍣ㄥ紓甯�',icon:'none'
})
}
- if (data.code === 5112) {
- uni.clearStorageSync()
- window.location.href = app_url
- }
+ // if (data.code === 5112) {
+ // uni.clearStorageSync()
+ // window.location.href = app_url
+ // }
return resolve(data)
}
resolve(data)
diff --git a/server/system_service/src/main/java/com/doumee/dao/system/dto/LoginDTO.java b/server/system_service/src/main/java/com/doumee/dao/system/dto/LoginDTO.java
index 4e53960..6239c13 100644
--- a/server/system_service/src/main/java/com/doumee/dao/system/dto/LoginDTO.java
+++ b/server/system_service/src/main/java/com/doumee/dao/system/dto/LoginDTO.java
@@ -22,6 +22,9 @@
@ApiModelProperty(value = "寰俊openId")
private String openid;
+ @ApiModelProperty(value = "閽夐拤 unionId")
+ private String ddUnionId;
+
@NotBlank(message = "瀵嗙爜涓嶈兘涓虹┖")
@ApiModelProperty(value = "瀵嗙爜")
private String password;
diff --git a/server/system_service/src/main/java/com/doumee/dao/system/dto/LoginH5DTO.java b/server/system_service/src/main/java/com/doumee/dao/system/dto/LoginH5DTO.java
index 5cda109..9df4bde 100644
--- a/server/system_service/src/main/java/com/doumee/dao/system/dto/LoginH5DTO.java
+++ b/server/system_service/src/main/java/com/doumee/dao/system/dto/LoginH5DTO.java
@@ -22,6 +22,9 @@
@ApiModelProperty(value = "寰俊openId")
private String openid;
+ @ApiModelProperty(value = "閽夐拤 unionId")
+ private String ddUnionId;
+
@NotBlank(message = "瀵嗙爜涓嶈兘涓虹┖")
@ApiModelProperty(value = "瀵嗙爜")
private String password;
diff --git a/server/system_service/src/main/java/com/doumee/dao/system/dto/LoginPhoneDTO.java b/server/system_service/src/main/java/com/doumee/dao/system/dto/LoginPhoneDTO.java
index 4f8a018..647c679 100644
--- a/server/system_service/src/main/java/com/doumee/dao/system/dto/LoginPhoneDTO.java
+++ b/server/system_service/src/main/java/com/doumee/dao/system/dto/LoginPhoneDTO.java
@@ -23,6 +23,8 @@
private String code;
@ApiModelProperty(value = "openid")
private String openid;
+ @ApiModelProperty(value = "閽夐拤 unionId")
+ private String ddUnionId;
@ApiModelProperty(value = "鐢ㄦ埛绫诲瀷锛�0=鍙告満锛�1=璁垮锛�2=鍐呴儴鍛樺伐")
private Integer userType;
}
diff --git a/server/system_service/src/main/java/com/doumee/dao/system/model/SystemUser.java b/server/system_service/src/main/java/com/doumee/dao/system/model/SystemUser.java
index ad790af..48f88b9 100644
--- a/server/system_service/src/main/java/com/doumee/dao/system/model/SystemUser.java
+++ b/server/system_service/src/main/java/com/doumee/dao/system/model/SystemUser.java
@@ -98,6 +98,8 @@
private String openidHkInfo;
@ApiModelProperty(value = "寰俊openid鎺ㄩ�佹捣搴锋椂闂�", example = "1", hidden = true)
private Date openidHkDate;
+ @ApiModelProperty(value = "閽夐拤 unionId", example = "1", hidden = true)
+ private String ddUnionId;
//2024骞�12鏈�6鏃�11:00:30 绫诲瀷 0鍙告満浜哄憳 1鏅�氳瀹� 2鍐呴儴浜哄憳 3tms绠℃帶浜哄憳
@ApiModelProperty(value = "绫诲瀷 0鍙告満浜哄憳 1鏅�氳瀹� 2鍐呴儴浜哄憳 3tms绠℃帶浜哄憳", example = "0")
diff --git a/server/system_service/src/main/java/com/doumee/service/system/impl/SystemLoginServiceImpl.java b/server/system_service/src/main/java/com/doumee/service/system/impl/SystemLoginServiceImpl.java
index 0fdc117..5334a12 100644
--- a/server/system_service/src/main/java/com/doumee/service/system/impl/SystemLoginServiceImpl.java
+++ b/server/system_service/src/main/java/com/doumee/service/system/impl/SystemLoginServiceImpl.java
@@ -156,7 +156,7 @@
}
}
try {
- LoginUserInfo user = dealLoginByPwdNewBiz(dto.getUsername(),dto.getPassword(),null,dto.getOpenid(),request);
+ LoginUserInfo user = dealLoginByPwdNewBiz(dto.getUsername(),dto.getPassword(),null,dto.getOpenid(),dto.getDdUnionId(),request);
systemLoginLogService.create(loginLog);
return user;
}catch (BusinessException e){
@@ -186,7 +186,7 @@
throw e;
}
}
- LoginUserInfo user = dealLoginByPwdNewBiz(dto.getUsername(),dto.getPassword(),null,dto.getOpenid(),request);
+ LoginUserInfo user = dealLoginByPwdNewBiz(dto.getUsername(),dto.getPassword(),null,dto.getOpenid(),dto.getDdUnionId(),request);
systemLoginLogService.create(loginLog);
return user;
}
@@ -213,7 +213,7 @@
isCaptcheValide(dto.getPhone(),dto.getCode());//妫�鏌ラ獙璇佺爜
SystemLoginLog loginLog = getInitLoginlog(dto.getPhone(),request);
try{
- LoginUserInfo userInfo = dealLoginByPwdNewBiz(null,null,dto.getPhone(),dto.getOpenid(), request );
+ LoginUserInfo userInfo = dealLoginByPwdNewBiz(null,null,dto.getPhone(),dto.getOpenid(),dto.getDdUnionId(), request );
systemLoginLogService.create(loginLog);
return userInfo;
}catch (BusinessException e){
@@ -227,7 +227,7 @@
throw e;
}
}
- private LoginUserInfo dealLoginByPwdNewBiz(String username,String pwd, String phone, String openid, ServerHttpRequest request) {
+ private LoginUserInfo dealLoginByPwdNewBiz(String username,String pwd, String phone, String openid, String ddUnionId, ServerHttpRequest request) {
// 鏍规嵁鐢ㄦ埛鍚嶆煡璇㈢敤鎴峰璞�
SystemUser queryDto = new SystemUser();
queryDto.setMobile(phone);
@@ -248,7 +248,12 @@
throw new BusinessException(ResponseStatus.ACCOUNT_INCORRECT);
}
}
- dealOpenIdBiz(user,openid);
+ if(StringUtils.isNotBlank(openid)){
+ dealOpenIdBiz(user,openid);
+ }
+ if(StringUtils.isNotBlank(ddUnionId)){
+ dealDDUnionIdBiz(user,ddUnionId);
+ }
Company company = new Company();
if(Objects.nonNull(user.getCompanyId())){
company = companyMapper.selectById(user.getCompanyId());
@@ -320,6 +325,24 @@
.eq(SystemUser::getId,user.getId()));
}
}
+
+ private void dealDDUnionIdBiz(SystemUser user, String ddUnionId) {
+ if(StringUtils.isNotBlank(ddUnionId)){
+ //濡傛灉openId涓嶄负绌�,缁戝畾璇ョ敤鎴穙penid
+ systemUserMapper.update(null,new UpdateWrapper<SystemUser>().lambda()
+ .set(SystemUser::getDdUnionId,null)
+ .set(SystemUser::getOpenidHkStatus,Constants.ZERO)
+ .ne(SystemUser::getType,Constants.memberType.gkuser)
+ .eq(SystemUser::getDdUnionId,ddUnionId)
+ );
+ systemUserMapper.update(null,new UpdateWrapper<SystemUser>().lambda()
+ .set(SystemUser::getDdUnionId,ddUnionId)
+ .set(SystemUser::getOpenidHkStatus,Constants.ZERO)
+ .set(SystemUser::getOpenidHkDate,null)
+ .set(SystemUser::getOpenidHkInfo,null)
+ .eq(SystemUser::getId,user.getId()));
+ }
+ }
private void dealOpenIdBizForGk(SystemUser user, String openid) {
if(StringUtils.isNotBlank(openid)){
//濡傛灉openId涓嶄负绌�,缁戝畾璇ョ敤鎴穙penid
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/MemberCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/MemberCloudController.java
index ee19a81..b8f1acc 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/MemberCloudController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/MemberCloudController.java
@@ -21,6 +21,7 @@
import com.doumee.service.business.ext.ERPSyncService;
import com.doumee.service.business.impl.hksync.fhk.HkSyncOrgUserFromHKServiceImpl;
import com.doumee.service.business.impl.hksync.fhk.HkSyncOrgUserFromSelfServiceImpl;
+import com.taobao.api.ApiException;
import io.swagger.annotations.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
@@ -367,4 +368,14 @@
return ApiResponse.success(null);
}
+
+ @ApiOperation("鍏ㄩ噺浜哄憳淇℃伅鍚屾 - 閽夐拤")
+ @PostMapping("/syncAllDingding")
+// @CloudRequiredPermission("business:company:sync")
+ public ApiResponse syncAllDingding() throws ApiException {
+ memberService.syncDDUserInfo();
+ return ApiResponse.success("鍚屾鎴愬姛");
+ }
+
+
}
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/VisitorWebController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/VisitorWebController.java
index 6ec9c82..c8bb46b 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/VisitorWebController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/VisitorWebController.java
@@ -3,6 +3,7 @@
import com.doumee.api.BaseController;
import com.doumee.config.annotation.LoginNoRequired;
import com.doumee.core.annotation.trace.Trace;
+import com.doumee.dao.web.response.DDAuthorizeVO;
import com.doumee.service.business.third.model.ApiResponse;
import com.doumee.service.business.third.model.LoginUserInfo;
import com.doumee.service.business.third.model.PageData;
@@ -17,6 +18,7 @@
import com.doumee.service.business.MemberService;
import com.doumee.service.business.VisitReasonService;
import com.doumee.service.business.VisitsService;
+import com.taobao.api.ApiException;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
@@ -65,6 +67,18 @@
return ApiResponse.success("鏌ヨ鎴愬姛",wxAuthorizeVO);
}
+
+ @ApiOperation(value = "閽夐拤寰俊鎺堟潈", notes = "璁垮寰俊鎺堟潈鑾峰彇openId")
+ @GetMapping("/ddAuthorize")
+ @ApiImplicitParams({
+ @ApiImplicitParam(paramType = "query", dataType = "String", name = "code", value = "鎺堟潈鐮�", required = true),
+ @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "source", value = "鏉ユ簮:0=鍙告満锛�1=璁垮锛�2=鍐呴儴鍛樺伐", required = true)
+ })
+ public ApiResponse<DDAuthorizeVO> ddAuthorize(@RequestParam String code, @RequestParam Integer source) throws ApiException {
+ DDAuthorizeVO ddAuthorizeVO = memberService.ddAuthorize(code,source);
+ return ApiResponse.success("鏌ヨ鎴愬姛",ddAuthorizeVO);
+ }
+
@ApiOperation(value = "鏌ヨ琚闂汉淇℃伅", notes = "鏌ヨ琚闂汉淇℃伅")
@PostMapping("/getVisitedMember")
public ApiResponse<List<MemberVO>> getVisitedMember(@Valid @RequestBody CheckVisitedDTO checkVisitedDTO) {
@@ -78,6 +92,8 @@
visits.setSourceType(Constants.ZERO);
return ApiResponse.success("鏌ヨ鎴愬姛", visitsService.createFk(visits,false,Constants.ZERO));
}
+
+
@ApiOperation(value = "鏉ヨ浜嬬敱", notes = "鏉ヨ浜嬬敱")
@PostMapping("/visitReason")
public ApiResponse<List<VisitReason>> visitReason() {
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/dingTalk/DingTalk.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/dingTalk/DingTalk.java
index 05bda56..84ac5f5 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/core/dingTalk/DingTalk.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/dingTalk/DingTalk.java
@@ -14,16 +14,21 @@
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.exception.BusinessException;
import com.doumee.core.utils.Constants;
+import com.doumee.core.utils.DateUtil;
import com.doumee.dao.business.dao.CompanyMapper;
+import com.doumee.dao.business.model.CarUseBook;
import com.doumee.dao.business.model.Company;
+import com.doumee.dao.business.model.Visits;
import com.doumee.dao.system.model.SystemDictData;
import com.doumee.service.business.CompanyService;
import com.github.xiaoymin.knife4j.core.util.CollectionUtils;
import com.taobao.api.ApiException;
import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import java.text.DateFormat;
import java.util.*;
import java.util.stream.Collectors;
@@ -102,6 +107,19 @@
public String getToken(){
String accessToken = systemDictDataBiz.queryByCode(Constants.DD_TALK,Constants.ACCESS_TOKEN).getCode();
return accessToken;
+ }
+
+
+ public OapiV2UserGetuserinfoResponse.UserGetByCodeResponse getDDUserByCode(String code) throws ApiException {
+ DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/v2/user/getuserinfo");
+ OapiV2UserGetuserinfoRequest req = new OapiV2UserGetuserinfoRequest();
+ req.setCode(code);
+ OapiV2UserGetuserinfoResponse rsp = client.execute(req, getToken());
+ if(rsp.getErrcode().equals(Constants.DD_ERR_CODE)){
+ return rsp.getResult();
+ }else{
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),rsp.getMessage());
+ }
}
@@ -364,6 +382,126 @@
}
}
+ public void workInfoOANotice(Long agentId,String userIds,OapiMessageCorpconversationAsyncsendV2Request.Msg msg)throws ApiException {
+ DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/message/corpconversation/asyncsend_v2");
+ OapiMessageCorpconversationAsyncsendV2Request request = new OapiMessageCorpconversationAsyncsendV2Request();
+ request.setAgentId(agentId);
+ request.setUseridList(userIds);
+ request.setToAllUser(false);
+ request.setMsg(msg);
+ OapiMessageCorpconversationAsyncsendV2Response rsp = client.execute(request, getToken());
+ if(rsp.getErrcode().equals(Constants.DD_ERR_CODE)){
+
+ }else{
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),rsp.getMessage());
+ }
+ }
+
+
+ /**
+ * 璁垮鐢宠/鎶ュ OA 宸ヤ綔閫氱煡 鍐呭
+ * @param visits
+ * @param title
+ * @return
+ */
+ public OapiMessageCorpconversationAsyncsendV2Request.Msg getVisitNoticeMsg(Visits visits,String title){
+ OapiMessageCorpconversationAsyncsendV2Request.Msg msg = new OapiMessageCorpconversationAsyncsendV2Request.Msg();
+ msg.setMsgtype("oa");
+ OapiMessageCorpconversationAsyncsendV2Request.OA oa = new OapiMessageCorpconversationAsyncsendV2Request.OA();
+ oa.setMessageUrl("");
+ OapiMessageCorpconversationAsyncsendV2Request.Head head = new OapiMessageCorpconversationAsyncsendV2Request.Head();
+ head.setText(title);
+ head.setBgcolor("#279BAA");
+ oa.setHead(head);
+
+ OapiMessageCorpconversationAsyncsendV2Request.Body body = new OapiMessageCorpconversationAsyncsendV2Request.Body();
+ body.setTitle(!Constants.equalsInteger(visits.getType(),Constants.TWO)?visits.getName()+"鐨勮瀹㈢敵璇�":"鐨勮瀹㈡姤澶�");
+ List<OapiMessageCorpconversationAsyncsendV2Request.Form> formList = new ArrayList<>();
+
+ OapiMessageCorpconversationAsyncsendV2Request.Form visitUser = new OapiMessageCorpconversationAsyncsendV2Request.Form();
+ visitUser.setKey("鏉ヨ浜�");
+ visitUser.setValue(visits.getName());
+ formList.add(visitUser);
+
+ OapiMessageCorpconversationAsyncsendV2Request.Form inDate = new OapiMessageCorpconversationAsyncsendV2Request.Form();
+ inDate.setKey("鍏ュ洯鏃堕棿");
+ inDate.setValue(DateUtil.formatDate(visits.getStarttime(),"MM-dd HH:mm"));
+ formList.add(inDate);
+
+ OapiMessageCorpconversationAsyncsendV2Request.Form outDate = new OapiMessageCorpconversationAsyncsendV2Request.Form();
+ outDate.setKey("绂诲洯鏃堕棿");
+ outDate.setValue(DateUtil.formatDate(visits.getEndtime(),"MM-dd HH:mm"));
+ formList.add(outDate);
+
+ OapiMessageCorpconversationAsyncsendV2Request.Form inReason = new OapiMessageCorpconversationAsyncsendV2Request.Form();
+ inReason.setKey("鏉ヨ浜嬬敱");
+ inReason.setValue(visits.getReason());
+ formList.add(inReason);
+
+ if(StringUtils.isNotBlank(visits.getCarNos())){
+ OapiMessageCorpconversationAsyncsendV2Request.Form carNos = new OapiMessageCorpconversationAsyncsendV2Request.Form();
+ carNos.setKey("闅忚杞﹁締");
+ carNos.setValue(visits.getCarNos());
+ formList.add(visitUser);
+ }
+
+ body.setForm(formList);
+ oa.setBody(body);
+ msg.setOa(oa);
+
+ return msg;
+ }
+
+
+ /* public OapiMessageCorpconversationAsyncsendV2Request.Msg getCarUseNoticeMsg(CarUseBook carUseBook,String title){
+ OapiMessageCorpconversationAsyncsendV2Request.Msg msg = new OapiMessageCorpconversationAsyncsendV2Request.Msg();
+ msg.setMsgtype("oa");
+ OapiMessageCorpconversationAsyncsendV2Request.OA oa = new OapiMessageCorpconversationAsyncsendV2Request.OA();
+ oa.setMessageUrl("");
+ OapiMessageCorpconversationAsyncsendV2Request.Head head = new OapiMessageCorpconversationAsyncsendV2Request.Head();
+ head.setText(title);
+ head.setBgcolor("#279BAA");
+ oa.setHead(head);
+
+ OapiMessageCorpconversationAsyncsendV2Request.Body body = new OapiMessageCorpconversationAsyncsendV2Request.Body();
+ body.setTitle("鍏姟鐢ㄨ溅");
+ List<OapiMessageCorpconversationAsyncsendV2Request.Form> formList = new ArrayList<>();
+
+
+ OapiMessageCorpconversationAsyncsendV2Request.Form startDate = new OapiMessageCorpconversationAsyncsendV2Request.Form();
+ startDate.setKey("寮�濮嬫椂闂�");
+ startDate.setValue(DateUtil.formatDate(carUseBook.getStartTime(),"MM-dd HH:mm"));
+ formList.add(startDate);
+
+ OapiMessageCorpconversationAsyncsendV2Request.Form endDate = new OapiMessageCorpconversationAsyncsendV2Request.Form();
+ endDate.setKey("缁撴潫鏃堕棿");
+ endDate.setValue(DateUtil.formatDate(carUseBook.getEndTime(),"MM-dd HH:mm"));
+ formList.add(endDate);
+
+
+ OapiMessageCorpconversationAsyncsendV2Request.Form userNum = new OapiMessageCorpconversationAsyncsendV2Request.Form();
+ userNum.setKey("涔樿溅浜烘暟");
+ userNum.setValue(DateUtil.formatDate(carUseBook.getEndTime(),"MM-dd HH:mm"));
+ formList.add(userNum);
+
+ OapiMessageCorpconversationAsyncsendV2Request.Form inReason = new OapiMessageCorpconversationAsyncsendV2Request.Form();
+ inReason.setKey("鏉ヨ浜嬬敱");
+ inReason.setValue(visits.getReason());
+ formList.add(inReason);
+
+ if(StringUtils.isNotBlank(visits.getCarNos())){
+ OapiMessageCorpconversationAsyncsendV2Request.Form carNos = new OapiMessageCorpconversationAsyncsendV2Request.Form();
+ carNos.setKey("闅忚杞﹁締");
+ carNos.setValue(visits.getCarNos());
+ formList.add(visitUser);
+ }
+
+ body.setForm(formList);
+ oa.setBody(body);
+ msg.setOa(oa);
+
+ return msg;
+ }*/
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/dingTalk/DingTalkStream.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/dingTalk/DingTalkStream.java
index 474b586..5dfd1a8 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/core/dingTalk/DingTalkStream.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/dingTalk/DingTalkStream.java
@@ -76,7 +76,7 @@
if(eventType.startsWith("org")){
companyService.ddPushCompanyInfo(eventType,bizData);
}else if(eventType.startsWith("user")){
-
+ memberService.ddPushMemberInfo(eventType,bizData);
}
//澶勭悊浜嬩欢
// process(bizData);
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/DDAuthorizeVO.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/DDAuthorizeVO.java
new file mode 100644
index 0000000..8ad2562
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/DDAuthorizeVO.java
@@ -0,0 +1,24 @@
+package com.doumee.dao.web.response;
+
+import com.doumee.dao.business.model.Member;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * Created by IntelliJ IDEA.
+ *
+ * @Author : Rk
+ * @create 2023/12/7 11:19
+ */
+@Data
+public class DDAuthorizeVO {
+
+ @ApiModelProperty(value = "鎺堟潈 unionId ")
+ private String unionId;
+
+ @ApiModelProperty(value = "鐢ㄦ埛token")
+ private String token;
+
+ @ApiModelProperty(value = "鐢ㄦ埛淇℃伅")
+ private Member member;
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/MemberService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/MemberService.java
index d425932..024145c 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/MemberService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/MemberService.java
@@ -1,5 +1,6 @@
package com.doumee.service.business;
+import com.doumee.dao.web.response.DDAuthorizeVO;
import com.doumee.service.business.third.model.LoginUserInfo;
import com.doumee.service.business.third.model.PageData;
import com.doumee.service.business.third.model.PageWrap;
@@ -13,6 +14,7 @@
import com.doumee.dao.web.reqeust.VisitMemberDTO;
import com.doumee.dao.web.response.MemberVO;
import com.doumee.dao.web.response.WxAuthorizeVO;
+import com.taobao.api.ApiException;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
@@ -172,6 +174,7 @@
*/
WxAuthorizeVO wxAuthorize(String code,Integer source);
+ DDAuthorizeVO ddAuthorize(String code, Integer source) throws ApiException;
List<MemberVO> getVisitedMember(CheckVisitedDTO checkVisitedDTO);
@@ -208,4 +211,8 @@
List<Member> findDriveList(Member model);
void initPinyinTool();
+
+ void syncDDUserInfo() throws ApiException;
+
+ void ddPushMemberInfo(String eventType, shade.com.alibaba.fastjson2.JSONObject eventData) throws ApiException;
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java
index 7336cb7..575f5a3 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java
@@ -961,7 +961,7 @@
company.setCompanyNamePath(company.getName());//鍚嶇О璺緞
company.setHkParentId(rootOrgId);
String idPath = "";
- if(StringUtils.isNotBlank(company.getErpParentId()) && !StringUtils.equals(company.getErpParentId(),Constants.ONE+"")){
+ if(StringUtils.isNotBlank(company.getErpParentId())){
Company parent = companyMapper.selectOne(new QueryWrapper<Company>().lambda().eq(Company::getErpId,company.getErpParentId())
.eq(Company::getIsdeleted,Constants.ZERO).last(" limit 1 "));
if(parent == null || Constants.equalsInteger(parent.getIsdeleted(),Constants.ONE)){
@@ -981,6 +981,7 @@
company.setHkParentId(parent.getHkId());
company.setCompanyPath(parent.getCompanyPath()+company.getId()+"/");
company.setCompanyNamePath(parent.getCompanyNamePath()+"/"+company.getName());
+ company.setParentId(parent.getId());
}
company.setHkCompanyPath(company.getCompanyNamePath());
company.setCreateDate(new Date());
@@ -1009,7 +1010,7 @@
public Company syncDDEditCompanyModel(OapiV2DepartmentGetResponse.DeptGetResponse deptGetResponse,Company company){
company.setErpParentId(deptGetResponse.getParentId().toString());
String idPath = "";
- if(StringUtils.isNotBlank(company.getErpParentId()) && !StringUtils.equals(company.getErpParentId(),Constants.ONE+"")){
+ if(StringUtils.isNotBlank(company.getErpParentId())){
Company parent = companyMapper.selectOne(new QueryWrapper<Company>().lambda().eq(Company::getErpId,company.getErpParentId())
.eq(Company::getIsdeleted,Constants.ZERO).last("limit 1 "));
if(parent == null || Constants.equalsInteger(parent.getIsdeleted(),Constants.ONE)){
@@ -1026,6 +1027,7 @@
company.setHkParentId(parent.getHkId());
company.setCompanyPath(parent.getCompanyPath()+company.getId()+"/");
company.setCompanyNamePath(parent.getCompanyNamePath()+"/"+company.getName());
+ company.setParentId(parent.getId());
}
company.setName(deptGetResponse.getName());
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
index 43c2c6f..b30488b 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -9,6 +9,7 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.dingtalk.api.response.OapiV2DepartmentGetResponse;
import com.dingtalk.api.response.OapiV2UserGetResponse;
+import com.dingtalk.api.response.OapiV2UserGetuserinfoResponse;
import com.doumee.biz.system.SystemDictDataBiz;
import com.doumee.config.DataSyncConfig;
import com.doumee.core.annotation.excel.ExcelImporter;
@@ -22,6 +23,7 @@
import com.doumee.core.haikang.model.param.respose.UserAddResponse;
import com.doumee.core.haikang.model.param.respose.UserDelResponse;
import com.doumee.core.haikang.service.HKService;
+import com.doumee.dao.web.response.DDAuthorizeVO;
import com.doumee.service.business.third.TmsService;
import com.doumee.service.business.third.model.LoginUserInfo;
import com.doumee.service.business.third.model.PageData;
@@ -219,9 +221,9 @@
private Member initAddMemberModel(Member member, LoginUserInfo loginUserInfo) {
Member insert= new Member();
- insert.setCreator(Objects.nonNull(loginUserInfo.getId())?loginUserInfo.getId():null);
+ insert.setCreator(Objects.nonNull(loginUserInfo)?loginUserInfo.getId():null);
insert.setCreateDate(new Date());
- insert.setEditor(Objects.nonNull(loginUserInfo.getId())?loginUserInfo.getId():null);
+ insert.setEditor(Objects.nonNull(loginUserInfo)?loginUserInfo.getId():null);
insert.setEditDate(new Date());
insert.setHkOrgId(member.getHkOrgId());
insert.setIsdeleted(Constants.ZERO);
@@ -231,6 +233,7 @@
insert.setCode(member.getCode());
insert.setType(Constants.TWO);
insert.setHkDate(new Date());
+ insert.setErpId(member.getErpId());
insert.setWorkStatus(Constants.ZERO);//榛樿鍦ㄨ亴
insert.setCanVisit(Constants.ZERO);//榛樿涓嶅彲璁块棶
insert.setAuthStatus(Constants.ZERO);
@@ -1845,6 +1848,12 @@
return wxAuthorizeVO;
}
+ /**
+ * 寰俊鎺堟潈 鍐呴儴浜哄憳鐧诲綍
+ * @param wxAuthorizeVO
+ * @param openId
+ * @param source
+ */
private void dealSystemUserAuthBiz(WxAuthorizeVO wxAuthorizeVO, String openId, Integer source) {
SystemUser user = systemUserMapper.selectOne(new QueryWrapper<SystemUser>().lambda()
.eq(SystemUser::getOpenid,openId)
@@ -1874,6 +1883,44 @@
wxAuthorizeVO.setToken(token);
}
}
+
+ /**
+ * 閽夐拤鎺堟潈鑾峰彇鍐呴儴浜哄憳鐧诲綍淇℃伅
+ * @param ddAuthorizeVO
+ * @param unionId
+ * @param source
+ */
+ private void dealSystemUserAuthBizByDD(DDAuthorizeVO ddAuthorizeVO, String unionId, Integer source) {
+ SystemUser user = systemUserMapper.selectOne(new QueryWrapper<SystemUser>().lambda()
+ .eq(SystemUser::getDdUnionId,unionId)
+ .in(SystemUser::getType,Constants.memberType.internal)
+ .eq(SystemUser::getDeleted,Constants.ZERO)
+ .last(" limit 1 "));
+ //闈炶瀹㈢敤鎴� 杩涜鍒ゆ柇鏄惁瀛樺湪鐢ㄦ埛
+ if(!Objects.isNull(user)){
+ Member member = memberMapper.selectById(user.getMemberId());
+ if(member == null || member.getIsdeleted() == Constants.ONE){
+ return;
+// throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鐢ㄦ埛宸插垹闄�,璇疯仈绯荤鐞嗗憳");
+ }
+ if(member.getStatus() != Constants.ZERO){
+ return;
+// throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鐢ㄦ埛宸茬鐢�,璇疯仈绯荤鐞嗗憳");
+ }
+ if(StringUtils.isNotBlank(member.getIdcardNo())){
+ member.setIdcardDecode(DESUtil.decrypt(Constants.EDS_PWD, member.getIdcardNo()));
+ }
+ String prefixUrl = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode() +
+ systemDictDataBiz.queryByCode(Constants.FTP,Constants.MEMBER_IMG).getCode();
+ member.setPrefixUrl(prefixUrl);
+ ddAuthorizeVO.setMember(member);
+ //鍙告満 涓� 鍐呴儴浜哄憳 鎻愪緵token
+ String token = systemLoginService.loginByUserId(user.getId());
+ ddAuthorizeVO.setToken(token);
+ }
+ }
+
+
private void dealDriverUserAuthBiz(WxAuthorizeVO wxAuthorizeVO, String openId, Integer source) {
SystemUser user = systemUserMapper.selectOne(new QueryWrapper<SystemUser>().lambda()
.eq(SystemUser::getOpenid,openId)
@@ -2345,6 +2392,7 @@
/**
* 鍚屾閽夐拤鍐呴儴鍛樺伐淇℃伅
*/
+ @Override
public void syncDDUserInfo() throws ApiException {
List<OapiV2UserGetResponse.UserGetResponse> list = dingTalk.syncAllUserInfo();
if(CollectionUtils.isEmpty(list)){
@@ -2410,7 +2458,7 @@
private Member syncDDAddMemberModel(OapiV2UserGetResponse.UserGetResponse deptGetResponse,Member member) {
member.setCreateDate(new Date());
- member.setErpId(deptGetResponse.getUserid());
+ member.setErpId(deptGetResponse.getUnionid());
member.setPhone(deptGetResponse.getMobile());
member.setName(deptGetResponse.getName());
member.setCode(deptGetResponse.getJobNumber());
@@ -2440,7 +2488,7 @@
if(Objects.nonNull(deptIdList)){
List<Company> companyList = companyMapper.selectList(new QueryWrapper<Company>().lambda().in(Company::getErpId,deptIdList)
.eq(Company::getType,Constants.ONE).eq(Company::getIsdeleted,Constants.ZERO)
- .isNotNull(Company::getHkId)
+// .isNotNull(Company::getHkId) 鏆傛椂鏃犳硶鍚屾寮�鑸� 鍏堟敞閲�
);
if(CollectionUtils.isNotEmpty(companyList)){
member.setHkOrgId(companyList.get(Constants.ZERO).getHkId());
@@ -2469,7 +2517,7 @@
public Member syncDDEditMemberModel(OapiV2UserGetResponse.UserGetResponse deptGetResponse,Member updateMember) {
updateMember.setEditDate(new Date());
- updateMember.setErpId(deptGetResponse.getUserid());
+ updateMember.setErpId(deptGetResponse.getUnionid());
updateMember.setPhone(deptGetResponse.getMobile());
updateMember.setName(deptGetResponse.getName());
updateMember.setCode(deptGetResponse.getJobNumber());
@@ -2536,6 +2584,7 @@
}
+ @Override
public void ddPushMemberInfo(String eventType, shade.com.alibaba.fastjson2.JSONObject eventData) throws ApiException {
JSONArray jsonArray = eventData.getJSONArray("userId");
if(jsonArray.isEmpty()){
@@ -2553,20 +2602,61 @@
}
}else if(eventType.equals("user_add_org")||eventType.equals("user_modify_org")){
for (int i = 0; i < jsonArray.size(); i++) {
+ OapiV2UserGetResponse.UserGetResponse userGetResponse = dingTalk.syncUserInfo(jsonArray.getString(i));
Member member = memberMapper.selectOne(new QueryWrapper<Member>().lambda()
.eq(Member::getIsdeleted,Constants.ZERO)
- .eq(Member::getErpId,jsonArray.getLong(i))
+ .eq(Member::getErpId,userGetResponse.getUnionid())
.last(" limit 1")
);
- OapiV2UserGetResponse.UserGetResponse deptGetResponse = dingTalk.syncUserInfo(jsonArray.getString(i));
if(Objects.isNull(member)){
- getAddMemberModel(deptGetResponse,member);
+ member = new Member();
+ getAddMemberModel(userGetResponse,member);
}else{
- getUpdateMemberModel(deptGetResponse,member);
+ getUpdateMemberModel(userGetResponse,member);
}
}
}
}
+ /**
+ * 閽夐拤鎺堟潈鐧诲綍
+ * @param code
+ * @param source
+ * @return
+ * @throws ApiException
+ */
+ @Override
+ public DDAuthorizeVO ddAuthorize(String code, Integer source) throws ApiException {
+ if(StringUtils.isBlank(code)||Objects.isNull(source)){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST);
+ }
+ OapiV2UserGetuserinfoResponse.UserGetByCodeResponse userGetByCodeResponse = dingTalk.getDDUserByCode(code);
+ if(Objects.isNull(userGetByCodeResponse)
+ || StringUtils.isBlank(userGetByCodeResponse.getUnionid())){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"閽夐拤鎺堟潈澶辫触");
+ }
+ String unionId = userGetByCodeResponse.getUnionid();
+
+ DDAuthorizeVO ddAuthorizeVO = new DDAuthorizeVO();
+ if(StringUtils.isBlank(unionId)){
+ return ddAuthorizeVO;
+ }
+ ddAuthorizeVO.setUnionId(unionId);
+// if(source==1){
+// //澶勭悊鏅�氳瀹汉鍛樿嚜鍔ㄦ巿鏉冮�昏緫
+// dealVisitUserAuthBiz(wxAuthorizeVO,openId,source);
+// }else if(source == 3){
+// //澶勭悊tms绠℃帶浜哄憳鑷姩鎺堟潈閫昏緫
+// dealGkUserAuthBiz(wxAuthorizeVO,openId,source);
+// }else if(source == 0){
+// //濡傛灉鏄徃鏈猴紝鍒欎粠system_user鏌ヨ
+// dealDriverUserAuthBiz(wxAuthorizeVO,openId,source);
+// }else{
+ //濡傛灉鏄唴閮ㄤ汉鍛橈紝鍒欎粠system_user鏌ヨ
+ dealSystemUserAuthBizByDD(ddAuthorizeVO,unionId,source);
+// }
+ return ddAuthorizeVO;
+ }
+
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java
index d9ab31f..4ad2587 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java
@@ -239,7 +239,7 @@
//妫�鏌ユ槸鍚﹀繀椤荤瓟棰橈紝骞朵笖绗﹀悎绛旈瑕佹眰
ProblemLog problemLog = isValidProblemLog(visits,source);
//鑾峰彇鐢宠鐨勬捣搴疯闂棬绂佺粍淇℃伅
- getHkDeviceRoles(visits,isERP);
+// getHkDeviceRoles(visits,isERP);
//妫�楠屾嫓璁夸汉鏄惁鍚堟硶
Member visitMember = isValideVisitedUser(visits.getReceptMemberId());
if(StringUtils.isNotBlank(visits.getIdcardNo()) && Constants.equalsInteger(Constants.ZERO, visits.getIdcardType())
@@ -258,24 +258,6 @@
//鍒濆鍖栬瀹俊鎭�
initVisitInfo(visits,date);
-// if(StringUtils.isNotBlank(visits.getFaceImg())&&(Constants.equalsInteger(visits.getType(),Constants.ZERO)|| Constants.equalsInteger(visits.getType(),Constants.TWO))){
-// //浜鸿劯璇勫垎
-// FacePictureCheckRequest param = new FacePictureCheckRequest();
-// String prefixUrl = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_LOCAL_RESOURCE_PATH).getCode() +
-// systemDictDataBiz.queryByCode(Constants.FTP,Constants.MEMBER_IMG).getCode();
-// param.setFacePicUrl(prefixUrl + visits.getFaceImg());
-// BaseResponse<FacePictureCheckResponse> response = HKService.facePictureCheck(param);
-// if(response == null || !StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE)){
-// throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "瀵逛笉璧凤紝浜鸿劯璇勫垎鑾峰彇鏁版嵁澶辫触~");
-// }
-// FacePictureCheckResponse facePictureCheckResponse = response.getData();
-// if(Objects.isNull(facePictureCheckResponse) || Objects.isNull(facePictureCheckResponse.getCheckResult())){
-// throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "瀵逛笉璧凤紝浜鸿劯璇勫垎鑾峰彇鏁版嵁澶辫触~");
-// }
-// if(!facePictureCheckResponse.getCheckResult()){
-// throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), facePictureCheckResponse.getStatusMessage());
-// }
-// }
visits.setSendTimeOutNotice(Constants.ZERO);
visitsMapper.insert(visits);
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/BoardServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/BoardServiceImpl.java
index c525f0e..552d487 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/BoardServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/BoardServiceImpl.java
@@ -1360,12 +1360,18 @@
List<Long> startTimeList = platformLogList.stream().filter(i->Objects.nonNull(i.getParam1()))
.filter(i->Objects.nonNull(i.getParam1())&&i.getParam1().indexOf(today)>=0)
.map(i->DateUtil.fromStringToDate("yyyy-MM-dd HH:mm:ss",i.getParam1()).getTime()).collect(Collectors.toList());
- Long startTime = Collections.min(startTimeList);
+ Long startTime = null ;
+ if(CollectionUtils.isNotEmpty(startTimeList)){
+ startTime = Collections.min(startTimeList);
+ }
//鑾峰彇缁撴潫鏃堕棿
List<Long> endTimeList = platformLogList.stream()
.filter(i->Objects.nonNull(i.getParam2())&&i.getParam2().indexOf(today)>=0)
.map(i->DateUtil.fromStringToDate("yyyy-MM-dd HH:mm:ss",i.getParam2()).getTime()).collect(Collectors.toList());
- Long endTime = Collections.max(endTimeList);
+ Long endTime = null ;
+ if(CollectionUtils.isNotEmpty(endTimeList)){
+ endTime = Collections.max(endTimeList);
+ }
if(Objects.isNull(startTime)
|| Objects.isNull(endTime) || (startTime>=endTime)){
return BigDecimal.ZERO;
--
Gitblit v1.9.3