Merge branch 'master' of http://139.186.142.91:10010/r/productDev/zbomyoujia
| | |
| | | download: true |
| | | }) |
| | | } |
| | | export function updateWorkStatus (data) { |
| | | return request.post('/visitsAdmin/cloudService/business/member/updateWorkStatus', data) |
| | | } |
| | | |
| | | export function importExcel (data) { |
| | | return request.post('/visitsAdmin/cloudService/business/member/importExcel', data) |
| | | } |
| | | export function memberSync (data) { |
| | | return request.post('/visitsAdmin/cloudService/business/member/syncAll', data) |
| | | return request.post('/business/users/importExcel', data) |
| | | } |
| | | // å建 |
| | | export function create (data) { |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <el-dialog |
| | | class="center-title" |
| | | :title="title" |
| | | width="500px" |
| | | top="30vh" |
| | | :visible.sync="visible" |
| | | :confirm-working="isWorking" |
| | | @confirm="confirm" |
| | | > |
| | | <p class="tip-warn"><i class="el-icon-warning"></i>导å
¥è¯´æï¼<br> |
| | | 1.请å
ä¸è½½æä»¶æ¨¡æ¿ï¼å¹¶æç
§æ¨¡æ¿è¦å»å¡«åè¡¨æ ¼å
容;<br> |
| | | </p> |
| | | <el-form class="demo-form-inline" > |
| | | <el-form-item label="ç»ç»ä¿¡æ¯æ¸
å" required> |
| | | <div style="width: 100%;display: flex;align-items: center;"> |
| | | <el-button type="primary" @click="clickRef">ç¹å»ä¸ä¼ </el-button> |
| | | <el-button type="text" @click="exportTemplate">ç¹å»ä¸è½½æ¨¡ç.EXCEL</el-button> |
| | | </div> |
| | | <div style="font-size: 14px; color: black;" v-if="fileName">{{fileName}}</div> |
| | | </el-form-item> |
| | | </el-form> |
| | | <input type="file" style="position: fixed; left: 0; top: -50px;" accept=".xlsx" ref="fileExcel" @change="result" /> |
| | | <template v-slot:footer> |
| | | <el-button @click="visible=false">è¿å</el-button> |
| | | </template> |
| | | </el-dialog> |
| | | </template> |
| | | |
| | | <script> |
| | | import BaseOpera from '@/components/base/BaseOpera' |
| | | import GlobalWindow from '@/components/common/GlobalWindow' |
| | | import { importExcel } from '@/api/business/users' |
| | | export default { |
| | | name: 'OperaShopImportWindow', |
| | | extends: BaseOpera, |
| | | // eslint-disable-next-line vue/no-unused-components |
| | | components: { GlobalWindow }, |
| | | data () { |
| | | return { |
| | | importing:false, |
| | | fileName: '', |
| | | } |
| | | }, |
| | | methods: { |
| | | open (title, companyType) { |
| | | this.title = title |
| | | this.fileName = '' |
| | | this.visible = true |
| | | }, |
| | | // å¯¼åºæ¨¡æ¿ |
| | | exportTemplate () { |
| | | // æä¿ç³è¯· |
| | | window.open('/template/users.xlsx') |
| | | }, |
| | | clickRef () { |
| | | this.$refs.fileExcel.click() |
| | | }, |
| | | result (e) { |
| | | const data = new FormData() |
| | | data.append('file', e.target.files[0]) |
| | | data.append('companyType', this.companyType) |
| | | importExcel(data) |
| | | .then(res => { |
| | | this.$tip.apiSuccess('åèµ·æ¹éä¸ä¼ 任塿åï¼è¯·ç¨åå·æ°é¡µé¢æ¥ç') |
| | | this.$emit('success') |
| | | this.visible = false |
| | | }) |
| | | .catch(err => { |
| | | this.fileName = '' |
| | | }) |
| | | .finally(() => { |
| | | this.$refs.fileExcel.value = null |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | |
| | | </style> |
| | |
| | | <span class="status-text">{{form.istext | disabledText1}}</span> |
| | | </el-form-item> |
| | | <el-form-item label="æ°æ®å¼" prop="code" required> |
| | | <el-input v-if="!form.istext" v-model="form.code" placeholder="请è¾å
¥æ°æ®å¼" v-trim maxlength="50"/> |
| | | <el-input v-if="!form.istext" v-model="form.code" placeholder="请è¾å
¥æ°æ®å¼" v-trim maxlength="500"/> |
| | | <RichEditor v-else :richData="form.code" :styleEditor="styleEditor" @getWangedditor="getWangedditor" :readonly="false"/> |
| | | </el-form-item> |
| | | <el-form-item label="ç¶æ" prop="disabled" required class="form-item-status"> |
| | |
| | | </el-table-column> |
| | | <el-table-column label="å¹³å°" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <span v-if="row.plat == 0">海康å®é²å¹³å°</span> |
| | | <span v-if="row.plat == 1">ERPç³»ç»</span> |
| | | <span v-if="row.plat == 0">å¿é¦CRMå¹³å°</span> |
| | | <span v-if="row.plat == 1">å¿é¦çä¿¡éé</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="request" label="请æ±åæ°" min-width="100px"> |
| | |
| | | </el-table-column> |
| | | <el-table-column label="å¹³å°" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <span v-if="row.plat == 0">海康å®é²å¹³å°</span> |
| | | <span v-if="row.plat == 1">ERPç³»ç»</span> |
| | | <span v-if="row.plat == 0">å¿é¦IAMå¹³å°</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="request" label="请æ±åæ°" min-width="100px"> |
| | |
| | | </el-table-column> |
| | | <el-table-column label="å¹³å°" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <span v-if="row.plat == 0">海康å®é²å¹³å°</span> |
| | | <span v-if="row.plat == 1">ERPç³»ç»</span> |
| | | <span v-if="row.plat == 0">å¿é¦ä¸å°</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="request" label="请æ±åæ°" min-width="100px"> |
| | |
| | | <TableLayout :permissions="['business:member:query']"> |
| | | <!-- æç´¢è¡¨å --> |
| | | <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline> |
| | | <el-form-item label="主é®" prop="id"> |
| | | <el-input v-model="searchForm.id" placeholder="请è¾å
¥ä¸»é®" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="å建人ç¼ç " prop="creator"> |
| | | <el-input v-model="searchForm.creator" placeholder="请è¾å
¥å建人ç¼ç " @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="å建æ¶é´" prop="createDate"> |
| | | <el-date-picker v-model="searchForm.createDate" value-format="yyyy-MM-dd" placeholder="请è¾å
¥å建æ¶é´" @change="search"/> |
| | | </el-form-item> |
| | | <el-form-item label="æ´æ°äººç¼ç " prop="editor"> |
| | | <el-input v-model="searchForm.editor" placeholder="请è¾å
¥æ´æ°äººç¼ç " @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="æ´æ°æ¶é´" prop="editDate"> |
| | | <el-date-picker v-model="searchForm.editDate" value-format="yyyy-MM-dd" placeholder="请è¾å
¥æ´æ°æ¶é´" @change="search"/> |
| | | </el-form-item> |
| | | <el-form-item label="æ¯å¦å é¤0å¦ 1æ¯" prop="isdeleted"> |
| | | <el-input v-model="searchForm.isdeleted" placeholder="请è¾å
¥æ¯å¦å é¤0å¦ 1æ¯" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="夿³¨" prop="remark"> |
| | | <el-input v-model="searchForm.remark" placeholder="请è¾å
¥å¤æ³¨" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="头å" prop="imgurl"> |
| | | <el-input v-model="searchForm.imgurl" placeholder="请è¾å
¥å¤´å" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="ç±»å 0æ¶è´¹è
" prop="type"> |
| | | <el-input v-model="searchForm.type" placeholder="请è¾å
¥ç±»å 0æ¶è´¹è
" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="æµç§°" prop="nickname"> |
| | | <el-input v-model="searchForm.nickname" placeholder="请è¾å
¥æµç§°" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="å§å" prop="name"> |
| | | <el-input v-model="searchForm.name" placeholder="请è¾å
¥å§å" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="åºçæ¥æ" prop="birthday"> |
| | | <el-date-picker v-model="searchForm.birthday" value-format="yyyy-MM-dd" placeholder="请è¾å
¥åºçæ¥æ" @change="search"/> |
| | | </el-form-item> |
| | | <el-form-item label="ææºå·" prop="phone"> |
| | | <el-input v-model="searchForm.phone" placeholder="请è¾å
¥ææºå·" @keypress.enter.native="search"></el-input> |
| | |
| | | <el-form-item label="微信openid" prop="openid"> |
| | | <el-input v-model="searchForm.openid" placeholder="请è¾å
¥å¾®ä¿¡openid" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="ç¶æ 0æ£å¸¸ 1ç¦ç¨" prop="status"> |
| | | <el-input v-model="searchForm.status" placeholder="请è¾å
¥ç¶æ 0æ£å¸¸ 1ç¦ç¨" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="ä¸å°ä¸´æ¶ç¥¨æ®è¿ææ¶é´" prop="tokenDate"> |
| | | <el-date-picker v-model="searchForm.tokenDate" value-format="yyyy-MM-dd" placeholder="请è¾å
¥ä¸å°ä¸´æ¶ç¥¨æ®è¿ææ¶é´" @change="search"/> |
| | | </el-form-item> |
| | | <el-form-item label="ä¸å°ä¸´æ¶ç¥¨æ®" prop="token"> |
| | | <el-input v-model="searchForm.token" placeholder="请è¾å
¥ä¸å°ä¸´æ¶ç¥¨æ®" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="æ§å« 1ç· 2女" prop="sex"> |
| | | <el-input v-model="searchForm.sex" placeholder="请è¾å
¥æ§å« 1ç· 2女" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="æè¿ç»å½æ¶é´" prop="lastLoginDate"> |
| | | <el-date-picker v-model="searchForm.lastLoginDate" value-format="yyyy-MM-dd" placeholder="请è¾å
¥æè¿ç»å½æ¶é´" @change="search"/> |
| | | </el-form-item> |
| | | <el-form-item label="ç»å½æ¬¡æ°" prop="loginNum"> |
| | | <el-input v-model="searchForm.loginNum" placeholder="请è¾å
¥ç»å½æ¬¡æ°" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="ç份åç§°" prop="provinceName"> |
| | | <el-input v-model="searchForm.provinceName" placeholder="请è¾å
¥ç份åç§°" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="åå¸åç§°" prop="cityName"> |
| | | <el-input v-model="searchForm.cityName" placeholder="请è¾å
¥åå¸åç§°" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="åºååç§°" prop="areaName"> |
| | | <el-input v-model="searchForm.areaName" placeholder="请è¾å
¥åºååç§°" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="ç份code" prop="provicneCode"> |
| | | <el-input v-model="searchForm.provicneCode" placeholder="请è¾å
¥ç份code" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="åå¸code" prop="cityCode"> |
| | | <el-input v-model="searchForm.cityCode" placeholder="请è¾å
¥åå¸code" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="åºåcode" prop="areaCode"> |
| | | <el-input v-model="searchForm.areaCode" placeholder="请è¾å
¥åºåcode" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="å°åºåç§°" prop="district"> |
| | | <el-input v-model="searchForm.district" placeholder="请è¾å
¥å°åºåç§°" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="æ·åä¿¡æ¯ï¼å®¤å
å¨å«é³æ°éï¼æ ¼å¼ï¼1-1-1-1-1ï¼" prop="housetype"> |
| | | <el-input v-model="searchForm.housetype" placeholder="请è¾å
¥æ·åä¿¡æ¯ï¼å®¤å
å¨å«é³æ°éï¼æ ¼å¼ï¼1-1-1-1-1ï¼" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="ç»åº¦" prop="longitude"> |
| | | <el-input v-model="searchForm.longitude" placeholder="请è¾å
¥ç»åº¦" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="纬度" prop="latitude"> |
| | | <el-input v-model="searchForm.latitude" placeholder="请è¾å
¥çº¬åº¦" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="ææç¶æ 0æªæææªç»å® 1å·²æææªç»å® 2å·²ææå·²ç»å®" prop="authStatus"> |
| | | <el-input v-model="searchForm.authStatus" placeholder="请è¾å
¥ææç¶æ 0æªæææªç»å® 1å·²æææªç»å® 2å·²ææå·²ç»å®" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="æè¿ææç»å®æ¶é´" prop="authDate"> |
| | | <el-date-picker v-model="searchForm.authDate" value-format="yyyy-MM-dd" placeholder="请è¾å
¥æè¿ææç»å®æ¶é´" @change="search"/> |
| | | </el-form-item> |
| | | <el-form-item label="æè¿ææç»å®å¤æ³¨" prop="authInfo"> |
| | | <el-input v-model="searchForm.authInfo" placeholder="请è¾å
¥æè¿ææç»å®å¤æ³¨" @keypress.enter.native="search"></el-input> |
| | | <el-form-item label="ææç¶æ" prop="authStatus"> |
| | | <el-select v-model="searchForm.authStatus" clearable @change="search"> |
| | | <el-option value="0" label="æªæææªç»å®" ></el-option> |
| | | <el-option value="1" label="å·²æææªç»å®"></el-option> |
| | | <el-option value="2" label="å·²ææå·²ç»å®"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <section> |
| | | <el-button type="primary" @click="search">æç´¢</el-button> |
| | |
| | | </el-form> |
| | | <!-- è¡¨æ ¼åå页 --> |
| | | <template v-slot:table-wrap> |
| | | <ul class="toolbar" v-permissions="['business:member:create', 'business:member:delete']"> |
| | | <!-- <ul class="toolbar" v-permissions="['business:member:create', 'business:member:delete']"> |
| | | <li><el-button type="primary" @click="$refs.operaMemberWindow.open('æ°å»ºç¨æ·ä¿¡æ¯è¡¨')" icon="el-icon-plus" v-permissions="['business:member:create']">æ°å»º</el-button></li> |
| | | <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:member:delete']">å é¤</el-button></li> |
| | | </ul> |
| | | </ul>--> |
| | | <el-table |
| | | v-loading="isWorking.search" |
| | | :data="tableData.list" |
| | |
| | | @selection-change="handleSelectionChange" |
| | | > |
| | | <el-table-column type="selection" width="55"></el-table-column> |
| | | <el-table-column prop="id" label="主é®" min-width="100px"></el-table-column> |
| | | <el-table-column prop="creator" label="å建人ç¼ç " min-width="100px"></el-table-column> |
| | | <el-table-column prop="createDate" label="å建æ¶é´" min-width="100px"></el-table-column> |
| | | <el-table-column prop="editor" label="æ´æ°äººç¼ç " min-width="100px"></el-table-column> |
| | | <el-table-column prop="editDate" label="æ´æ°æ¶é´" min-width="100px"></el-table-column> |
| | | <el-table-column prop="isdeleted" label="æ¯å¦å é¤0å¦ 1æ¯" min-width="100px"></el-table-column> |
| | | <el-table-column prop="remark" label="夿³¨" min-width="100px"></el-table-column> |
| | | <el-table-column prop="imgurl" label="头å" min-width="100px"></el-table-column> |
| | | <el-table-column prop="type" label="ç±»å 0æ¶è´¹è
" min-width="100px"></el-table-column> |
| | | <el-table-column prop="nickname" label="æµç§°" min-width="100px"></el-table-column> |
| | | <el-table-column prop="name" label="å§å" min-width="100px"></el-table-column> |
| | | <el-table-column fixed label="头å" align="center" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <el-image |
| | | v-if="row.imgurlFull" |
| | | style="width: 60px; height: 60px" |
| | | :src="row.imgurlFull" |
| | | :preview-src-list="[row.imgurlFull]"> |
| | | </el-image> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="nickname" align="center" fixed label="æµç§°/å§å" min-width="180px"> |
| | | <template slot-scope="{row}"> |
| | | {{row.nickname||'-'}} / {{row.name||'-'}} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="phone" label="ææºå·" fixed min-width="100px"></el-table-column> |
| | | <el-table-column prop="birthday" label="åºçæ¥æ" min-width="100px"></el-table-column> |
| | | <el-table-column prop="phone" label="ææºå·" min-width="100px"></el-table-column> |
| | | <el-table-column prop="openid" label="微信openid" min-width="100px"></el-table-column> |
| | | <el-table-column prop="status" label="ç¶æ 0æ£å¸¸ 1ç¦ç¨" min-width="100px"></el-table-column> |
| | | <el-table-column prop="tokenDate" label="ä¸å°ä¸´æ¶ç¥¨æ®è¿ææ¶é´" min-width="100px"></el-table-column> |
| | | <el-table-column prop="token" label="ä¸å°ä¸´æ¶ç¥¨æ®" min-width="100px"></el-table-column> |
| | | <el-table-column prop="sex" label="æ§å« 1ç· 2女" min-width="100px"></el-table-column> |
| | | <el-table-column prop="lastLoginDate" label="æè¿ç»å½æ¶é´" min-width="100px"></el-table-column> |
| | | <el-table-column prop="loginNum" label="ç»å½æ¬¡æ°" min-width="100px"></el-table-column> |
| | | <el-table-column prop="provinceName" label="ç份åç§°" min-width="100px"></el-table-column> |
| | | <el-table-column prop="cityName" label="åå¸åç§°" min-width="100px"></el-table-column> |
| | | <el-table-column prop="areaName" label="åºååç§°" min-width="100px"></el-table-column> |
| | | <el-table-column prop="provicneCode" label="ç份code" min-width="100px"></el-table-column> |
| | | <el-table-column prop="cityCode" label="åå¸code" min-width="100px"></el-table-column> |
| | | <el-table-column prop="areaCode" label="åºåcode" min-width="100px"></el-table-column> |
| | | <el-table-column prop="sex" label="æ§å«" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <span v-if="row.sex ==1" >ç·</span> |
| | | <span v-if="row.sex ==0" >女</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="provinceName" align="center" label="å°å" min-width="200px"> |
| | | <template slot-scope="{row}"> |
| | | {{row.provinceName}}{{row.cityName}}{{row.areaName}}{{row.address}} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="district" label="å°åºåç§°" min-width="100px"></el-table-column> |
| | | <el-table-column prop="housetype" label="æ·åä¿¡æ¯ï¼å®¤å
å¨å«é³æ°éï¼æ ¼å¼ï¼1-1-1-1-1ï¼" min-width="100px"></el-table-column> |
| | | <el-table-column prop="longitude" label="ç»åº¦" min-width="100px"></el-table-column> |
| | | <el-table-column prop="latitude" label="纬度" min-width="100px"></el-table-column> |
| | | <el-table-column prop="authStatus" label="ææç¶æ 0æªæææªç»å® 1å·²æææªç»å® 2å·²ææå·²ç»å®" min-width="100px"></el-table-column> |
| | | <el-table-column prop="authDate" label="æè¿ææç»å®æ¶é´" min-width="100px"></el-table-column> |
| | | <el-table-column prop="authInfo" label="æè¿ææç»å®å¤æ³¨" min-width="100px"></el-table-column> |
| | | <el-table-column prop="housetypeInfo" label="æ·åä¿¡æ¯" min-width="100px"></el-table-column> |
| | | <el-table-column prop="area" label="é¢ç§¯(ã¡)" min-width="80px"></el-table-column> |
| | | <el-table-column prop="longitude" label="ç»çº¬åº¦" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <span v-if="row.longitude && row.latitude" style="color:red;">[{{row.longitude}},{{row.latitude}}]</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="authStatus" label="ææç¶æ" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <span v-if="(row.authStatus|| 0) ==0" style="color:red;">æªæææªç»å®</span> |
| | | <span v-if="row.authStatus ==1" style="color:blue;">å·²æææªç»å®</span> |
| | | <span v-if="row.authStatus ==2" style="color:green;">å·²ææå·²ç»å®</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="loginNum" label="ç»å½æ¬¡æ°" min-width="100px"></el-table-column> |
| | | <el-table-column prop="lastLoginDate" label="æè¿ç»å½æ¶é´" min-width="120px"></el-table-column> |
| | | <el-table-column prop="authDate" label="ææç»å®æ¶é´" min-width="120px"></el-table-column> |
| | | <el-table-column prop="token" label="ä¸å°ç¥¨æ®" min-width="100px"></el-table-column> |
| | | <el-table-column prop="tokenDate" label="ç¥¨æ®æææ" min-width="100px"></el-table-column> |
| | | <el-table-column |
| | | v-if="containPermissions(['business:member:update', 'business:member:delete'])" |
| | | label="æä½" |
| | |
| | | <TableLayout :permissions="['business:shop:query']"> |
| | | <!-- æç´¢è¡¨å --> |
| | | <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline> |
| | | <el-form-item label="é¨é¨åç§°" prop="name"> |
| | | <el-form-item label="" prop="name"> |
| | | <el-input v-model="searchForm.name" placeholder="请è¾å
¥é¨é¨åç§°" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="ä¸çº§ç»ç»" prop="parentId"> |
| | | <el-form-item label="" prop="parentId"> |
| | | <el-input v-model="searchForm.parentName" placeholder="请è¾å
¥ä¸çº§ç»ç»åç§°/ç¼ç " @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="ç¶æ" prop="status"> |
| | | <el-select v-model="searchForm.status" @change="search" clearable placeholder="ç¶æ"> |
| | | <el-option label="åç¨" value="1"></el-option> |
| | | <el-form-item label="" prop="status"> |
| | | <el-select v-model="searchForm.status" style="width: 130px" @change="search" clearable placeholder="ç¶æ"> |
| | | <el-option label="åç¨" value="0"></el-option> |
| | | <el-option label="æ£å¸¸" value="1"></el-option> |
| | | <el-option label="å·²å é¤" value="2"></el-option> |
| | | <el-option label="å·²å é¤" value="-1"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="ç»ç»ç¼ç " prop="code"> |
| | | <el-form-item label="" prop="code"> |
| | | <el-input v-model="searchForm.code" placeholder="请è¾å
¥ç»ç»ç¼ç " @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="ä¸çº§ç»ç»ç±»å" prop="type"> |
| | | <el-select v-model="searchForm.type" @change="search" clearable placeholder="ä¸çº§ç»ç»ç±»å"> |
| | | <el-form-item label="" prop="type"> |
| | | <el-select v-model="searchForm.type" @change="search" style="width: 130px" clearable placeholder="ä¸çº§ç»ç»ç±»å"> |
| | | <el-option label="HR" value="1"></el-option> |
| | | <el-option label="å çå" value="2"></el-option> |
| | | <el-option label="èæç»ç»" value="3"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="äºçº§ç»ç»ç±»å" prop="type"> |
| | | <el-select v-model="searchForm.secondType" @change="search" clearable placeholder="äºçº§ç»ç»ç±»å"> |
| | | <el-form-item label="" prop="type"> |
| | | <el-select v-model="searchForm.secondType" @change="search" style="width: 130px" clearable placeholder="äºçº§ç»ç»ç±»å"> |
| | | <el-option label="S" value="1"></el-option> |
| | | <el-option label="F" value="2"></el-option> |
| | | <el-option label="åºé¢" value="3"></el-option> |
| | |
| | | <el-option label="èæåºé¢" value="5"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="é¨é¨å±æ§" prop="attribute"> |
| | | <el-select v-model="searchForm.attribute" @change="search" clearable placeholder="é¨é¨å±æ§"> |
| | | <el-form-item label="" prop="attribute"> |
| | | <el-select v-model="searchForm.attribute" @change="search" style="width: 130px" clearable placeholder="é¨é¨å±æ§"> |
| | | <el-option label="å®ä½åºé¢" value="1"></el-option> |
| | | <el-option label="èæåºé¢" value="2"></el-option> |
| | | <el-option label="çµåé¨" value="3"></el-option> |
| | |
| | | <el-option label="è´¢å¡é¨" value="5"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="ç份åç§°" prop="provinceName"> |
| | | <el-form-item label="" prop="provinceName"> |
| | | <el-input v-model="searchForm.provinceName" placeholder="请è¾å
¥ç份åç§°" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="åå¸åç§°" prop="cityName"> |
| | | <el-form-item label="" prop="cityName"> |
| | | <el-input v-model="searchForm.cityName" placeholder="请è¾å
¥åå¸åç§°" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="åºå¿åç§°" prop="areaName"> |
| | | <el-form-item label="" prop="areaName"> |
| | | <el-input v-model="searchForm.areaName" placeholder="请è¾å
¥åºå¿åç§°" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="åç±»ç¼ç " prop="unitCode"> |
| | | <el-form-item label="" prop="unitCode"> |
| | | <el-input v-model="searchForm.unitCode" placeholder="请è¾å
¥åç±»ç¼ç " @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="客æ·ç±»åç¼ç " prop="siteCode"> |
| | | <el-form-item label="" prop="siteCode"> |
| | | <el-input v-model="searchForm.siteCode" placeholder="请è¾å
¥å®¢æ·ç±»åç¼ç " @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <section> |
| | |
| | | > |
| | | <el-table-column type="selection" width="55"></el-table-column> |
| | | <el-table-column prop="name" label="ç»ç»åç§°" min-width="120px"></el-table-column> |
| | | <el-table-column prop="code" label="ç»ç»ç¼ç " min-width="120px"></el-table-column> |
| | | <el-table-column prop="type" label="ä¸çº§ç±»å" min-width="80px"> |
| | | <template scope="{row}"> |
| | | <span v-if="row.type == 1">HR</span> |
| | |
| | | <template scope="{row}"> |
| | | <span v-if="row.status == 0" style="color: red">åç¨</span> |
| | | <span v-if="row.status == 1" style="color: green">æ£å¸¸</span> |
| | | <span v-if="row.status == 2" style="color: grey">å·²å é¤</span> |
| | | <span v-if="row.status == -1" style="color: grey">å·²å é¤</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="namePath" label="ç»ç»è·¯å¾" min-width="200px"></el-table-column> |
| | |
| | | @selection-change="handleSelectionChange" |
| | | > |
| | | <el-table-column type="selection" width="55"></el-table-column> |
| | | <el-table-column prop="name" label="ç»ç»åç§°" min-width="300px"></el-table-column> |
| | | <el-table-column prop="name" label="ç»ç»åç§°" fixed min-width="300px"></el-table-column> |
| | | <el-table-column prop="code" label="ç»ç»ç¼ç " min-width="120px"></el-table-column> |
| | | <el-table-column prop="type" label="ä¸çº§ç±»å" min-width="100px"> |
| | | <template scope="{row}"> |
| | | <span v-if="row.type == 1">HR</span> |
| | |
| | | <template scope="{row}"> |
| | | <span v-if="row.status == 0" style="color: red">åç¨</span> |
| | | <span v-if="row.status == 1" style="color: green">æ£å¸¸</span> |
| | | <span v-if="row.status == 2" style="color: grey">å·²å é¤</span> |
| | | <span v-if="row.status == -1" style="color: grey">å·²å é¤</span> |
| | | </template> |
| | | </el-table-column> |
| | | <!-- |
| | | |
| | | <el-table-column prop="namePath" label="ç»ç»è·¯å¾" min-width="200px"></el-table-column> |
| | | --> |
| | | |
| | | <!-- |
| | | <el-table-column prop="syncDate" label="æå忥æ¶é´" min-width="120px"></el-table-column> |
| | | --> |
| | |
| | | <el-input v-model="searchForm.iamUsername" placeholder="请è¾å
¥ç»å½è´¦å·" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="" prop="shopType"> |
| | | <el-select v-model="searchForm.shopType" @change="search" clearable placeholder="ä¸çº§ç»ç»ç±»å"> |
| | | <el-select v-model="searchForm.shopType" @change="search" style="width: 130px" clearable placeholder="ä¸çº§ç»ç»ç±»å"> |
| | | <el-option label="HR" value="1"></el-option> |
| | | <el-option label="å çå" value="2"></el-option> |
| | | <el-option label="èæç»ç»" value="3"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="" prop="shopSecType"> |
| | | <el-select v-model="searchForm.shopSecType" @change="search" clearable placeholder="äºçº§ç»ç»ç±»å"> |
| | | <el-select v-model="searchForm.shopSecType" @change="search" style="width: 130px" clearable placeholder="äºçº§ç»ç»ç±»å"> |
| | | <el-option label="S" value="1"></el-option> |
| | | <el-option label="F" value="2"></el-option> |
| | | <el-option label="åºé¢" value="3"></el-option> |
| | |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="" prop="status"> |
| | | <el-select v-model="searchForm.status" @keypress.enter.native="search" clearable placeholder="ç¶æ"> |
| | | <el-option label="æ£å¸¸" value="0"></el-option> |
| | | <el-option label="ç¦ç¨" value="1"></el-option> |
| | | <el-option label="æé»/å»ç»" value="2"></el-option> |
| | | <el-select v-model="searchForm.status" @keypress.enter.native="search" style="width: 120px" clearable placeholder="ç¶æ"> |
| | | <el-option label="åç¨" value="0"></el-option> |
| | | <el-option label="æ£å¸¸" value="1"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <section> |
| | |
| | | <!-- è¡¨æ ¼åå页 --> |
| | | <template v-slot:table-wrap> |
| | | <ul class="toolbar" style="height: 26px"> |
| | | <!-- <li><el-button type="primary" @click="$refs.OperaMemberWindow.open('æ°å»ºåå·¥',null,department,searchForm.companyType)" icon="el-icon-plus" v-permissions="['business:member:create']">æ°å»ºåå·¥</el-button></li> |
| | | <li><el-button type="primary" @click="$refs.OperaMemberImportWindow.open('人å导å
¥',searchForm.companyType)" icon="el-icon-plus" v-permissions="['business:member:create']">人å导å
¥</el-button></li> |
| | | <li><el-button type="danger" @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:member:delete']">æ¹éå é¤</el-button></li> |
| | | --> |
| | | <li><el-button type="primary" @click="$refs.OperaUserImportWindow.open('åå§å导å
¥')" icon="el-icon-plus" v-permissions="['business:member:create']">åå§å导å
¥</el-button></li> |
| | | <!-- <li><el-button type="primary" @click="$refs.OperaMemberWindow.open('æ°å»ºåå·¥',null,department,searchForm.companyType)" icon="el-icon-plus" v-permissions="['business:member:create']">æ°å»ºåå·¥</el-button></li> |
| | | <li><el-button type="primary" @click="$refs.OperaMemberImportWindow.open('人å导å
¥',searchForm.companyType)" icon="el-icon-plus" v-permissions="['business:member:create']">人å导å
¥</el-button></li> |
| | | <li><el-button type="danger" @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:member:delete']">æ¹éå é¤</el-button></li> |
| | | --> |
| | | <li style="float: right;"> |
| | | <el-checkbox style="font-size: 12px" label="1" v-model="searchForm.includeChild" key="1" @change="search" >æ¯å¦å
å«ä¸çº§ç»ç»</el-checkbox> |
| | | </li> |
| | |
| | | @selection-change="handleSelectionChange" |
| | | > |
| | | <el-table-column type="selection" width="55"></el-table-column> |
| | | <el-table-column prop="name" label="å§å" min-width="100px"></el-table-column> |
| | | <el-table-column prop="iamUsername" label="ç»å½è´¦å·" min-width="100px"></el-table-column> |
| | | <el-table-column prop="phone" label="ææºå·" min-width="100px"></el-table-column> |
| | | <el-table-column prop="name" label="å§å" fixed min-width="100px"></el-table-column> |
| | | <el-table-column prop="iamUsername" fixed label="ç»å½è´¦å·" min-width="100px"></el-table-column> |
| | | <el-table-column prop="phone" label="ææºå·" fixed min-width="100px"></el-table-column> |
| | | <el-table-column label="æ§å«" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <span v-if="row.sex == 0">ç·</span> |
| | | <span v-if="row.sex == 1">女</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="shopName" label="æå±é¨é¨" min-width="100px"></el-table-column> |
| | | <el-table-column prop="shopName" label="æå±é¨é¨" min-width="150px"></el-table-column> |
| | | <el-table-column prop="status" label="ç¶æ" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <span v-if="row.status == 0" style="color: red">åç¨</span> |
| | | <span v-if="row.status == 1" style="color:green">å¯ç¨</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="shopType" label="ç»ç»ç±»å" min-width="80px"> |
| | | <el-table-column prop="shopType" label="ç»ç»ç±»å" min-width="110px"> |
| | | <template scope="{row}"> |
| | | <span v-if="row.shopType == 1">HR</span> |
| | | <span v-if="row.shopType == 2">å çå</span> |
| | |
| | | > |
| | | </pagination> |
| | | <!-- æ¥ç人åå¼å¡è®°å½ --> |
| | | <OperaMemberWindow ref="OperaMemberWindow" @success="handlePageChange" /> |
| | | <OperaMemberImportWindow ref="OperaMemberImportWindow" @success="handlePageChange" /> |
| | | <OperaUserImportWindow ref="OperaUserImportWindow" @success="handlePageChange" /> |
| | | </template> |
| | | </TableLayout1> |
| | | </template> |
| | |
| | | import BaseTable from '@/components/base/BaseTable' |
| | | import TableLayout1 from '@/layouts/TableLayout1' |
| | | import Pagination from '@/components/common/Pagination' |
| | | import OperaMemberWindow from '@/components/business/OperaMemberWindow' |
| | | import OperaMemberImportWindow from '@/components/business/OperaMemberImportWindow' |
| | | import OperaUserImportWindow from '@/components/business/OperaUserImportWindow' |
| | | import { fetchListByParent } from '@/api/business/shop' |
| | | export default { |
| | | name: 'internalMember', |
| | | extends: BaseTable, |
| | | components: { TableLayout1, Pagination, OperaMemberWindow, OperaMemberImportWindow }, |
| | | components: { TableLayout1, Pagination, OperaUserImportWindow }, |
| | | data () { |
| | | return { |
| | | TreeList: [], |
| | |
| | | success = Constants.ONE; |
| | | r = ApiResponse.failed("æä½å¤±è´¥"); |
| | | }finally { |
| | | zbomIAMService.saveInterfaceLog("/push/iam/updateUserInfo","IAMæ¨é人åè´¦å·ä¿¡æ¯", token, uuid, timestamp, shopList,success, JSONObject.toJSONString(r)); |
| | | zbomIAMService.saveInterfaceLog("/push/iam/updateUserInfo",Constants.ONE,"IAMæ¨é人åè´¦å·ä¿¡æ¯", token, uuid, timestamp, shopList,success, JSONObject.toJSONString(r)); |
| | | } |
| | | return r; |
| | | } |
| | |
| | | ApiResponse<String> r = null; |
| | | try { |
| | | zbomIAMService.updateUserInfo(token,uuid,timestamp,upateUserModel); |
| | | r = ApiResponse.success("æä½æå"); |
| | | r = ApiResponse.successIam("æä½æå"); |
| | | }catch (BusinessException e){ |
| | | success = Constants.ONE; |
| | | r = ApiResponse.failed(StringUtils.defaultString(e.getMessage(),"æä½å¤±è´¥")); |
| | |
| | | e.getMessage(); |
| | | r = ApiResponse.failed("æä½å¤±è´¥"); |
| | | }finally { |
| | | zbomIAMService.saveInterfaceLog("/push/iam/updateUserInfo","IAMæ¨é人åè´¦å·ä¿¡æ¯", token, uuid, timestamp, upateUserModel,success, JSONObject.toJSONString(r)); |
| | | zbomIAMService.saveInterfaceLog("/push/iam/updateUserInfo",Constants.ONE,"IAMæ¨é人åè´¦å·ä¿¡æ¯", token, uuid, timestamp, upateUserModel,success, JSONObject.toJSONString(r)); |
| | | } |
| | | return r; |
| | | } |
| | |
| | | }) |
| | | @RequiresPermissions("business:shop:create") |
| | | public ApiResponse<String> importExcel (@ApiParam(value = "file") MultipartFile file ) { |
| | | // Boolean importing = (Boolean) redisTemplate.opsForValue().get(Constants.RedisKeys.IMPORTING_SHOP); |
| | | // if(importing!=null && importing){ |
| | | // throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对ä¸èµ·ï¼å·²åå¨å¯¼å
¥ä»»å¡æ£å¨æ§è¡ä¸ï¼è¯·ç¨ååè¯ï¼"); |
| | | // } |
| | | shopService.importBatch(file); |
| | | // shopService.dealShopNamePath(); |
| | | return ApiResponse.success("æä½æå"); |
| | |
| | | import com.doumee.core.model.PageData; |
| | | import com.doumee.dao.business.model.Users; |
| | | import com.doumee.service.business.UsersService; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import org.apache.shiro.authz.annotation.RequiresPermissions; |
| | | import io.swagger.annotations.*; |
| | | import org.apache.shiro.authz.annotation.RequiresPermissions; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.*; |
| | | import org.springframework.web.multipart.MultipartFile; |
| | | |
| | | import javax.servlet.http.HttpServletResponse; |
| | | |
| | | import java.io.File; |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | |
| | |
| | | public ApiResponse findById(@PathVariable Long id) { |
| | | return ApiResponse.success(usersService.findById(id)); |
| | | } |
| | | |
| | | @ApiOperation(value = "人åä¿¡æ¯åå§å导å
¥" ,notes = "人åä¿¡æ¯åå§å导å
¥") |
| | | @PostMapping("/importExcel") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(name = "file", value = "file", required = true, paramType = "query", dataType = "file", dataTypeClass = File.class), |
| | | }) |
| | | @RequiresPermissions("business:users:create") |
| | | public ApiResponse<String> importExcel (@ApiParam(value = "file") MultipartFile file ) { |
| | | usersService.importBatch(file); |
| | | return ApiResponse.success("æä½æå"); |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.timer; |
| | | |
| | | import com.doumee.biz.zbom.ZbomIAMService; |
| | | import com.doumee.service.business.InitService; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | import java.lang.reflect.Method; |
| | | |
| | | /** |
| | | * @author åå§åå¿é¦åå¹³å°ç¼ååå
¸å¼ |
| | | * @since 2023-07-26 11:44 |
| | | */ |
| | | @Component("zbomDictDataTask") |
| | | public class ZbomRedisResetBiz implements JobService { |
| | | private static final Logger log = LoggerFactory.getLogger(ZbomRedisResetBiz.class); |
| | | |
| | | @Autowired |
| | | InitService initService; |
| | | @Override |
| | | public void run(String params,String module) { |
| | | Method method = null; |
| | | try { |
| | | if(StringUtils.equals(module,"refreshZbomDictDataCache")){ |
| | | initService.refreshZbomDictDataCache(); |
| | | }else if(StringUtils.equals(module,"orgInit")){ |
| | | |
| | | }else |
| | | log.info("\n ======== 宿¶ä»»å¡å·²æ§è¡ï¼zbomRedisResut.========"+module); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.timer.init; |
| | | |
| | | import com.doumee.biz.system.SystemDictDataBiz; |
| | | import com.doumee.core.utils.Constants; |
| | | import com.doumee.service.business.InitService; |
| | | import com.doumee.service.business.ShopService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.context.annotation.Lazy; |
| | | import org.springframework.data.redis.core.RedisTemplate; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import javax.annotation.PostConstruct; |
| | | |
| | | /** |
| | | * å¿é¦ç»ç»ä¿¡æ¯è¡¨Serviceå®ç° |
| | | * @author æ±è¹è¹ |
| | | * @date 2024/07/04 14:40 |
| | | */ |
| | | @Service |
| | | public class InitBizService { |
| | | |
| | | @Autowired |
| | | @Lazy |
| | | private InitService initService; |
| | | |
| | | @PostConstruct |
| | | public void clearImporting(){ |
| | | initService.clearImporting(); |
| | | } |
| | | @PostConstruct |
| | | public void refreshZbomDictDataCache(){ |
| | | initService.refreshZbomDictDataCache(); |
| | | } |
| | | @PostConstruct |
| | | public void cacheShopTree(){ |
| | | // redisTemplate.opsForValue().set(Constants.RedisKeys.SHOP_TREE,shopService.shopTree(null)); |
| | | } |
| | | } |
| | |
| | | import com.doumee.biz.zbom.model.CrmCustomerSubmmitModel; |
| | | import com.doumee.biz.zbom.model.IamUpateShopModel; |
| | | import com.doumee.biz.zbom.model.IamUpateUserModel; |
| | | import com.doumee.dao.business.model.CustomerLog; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.util.List; |
| | |
| | | @Service |
| | | public interface ZbomCRMService { |
| | | |
| | | void dealCustomerLogData(CustomerLog customerLog); |
| | | |
| | | int postDataToCrm(CrmCustomerSubmmitModel entity ); |
| | | } |
| | |
| | | void updateShopInfo(String token, String uuid, String timestamp, List<IamUpateShopModel> shopList); |
| | | |
| | | void updateUserInfo(String token, String uuid, String timestamp, IamUpateUserModel upateUserModel); |
| | | void saveInterfaceLog(String url,String name, String token, String uuid, String timestamp, Object obj,Integer success,String respone); |
| | | void saveInterfaceLog(String url,int type,String name, String token, String uuid, String timestamp, Object obj,Integer success,String respone); |
| | | } |
| | |
| | | package com.doumee.biz.zbom; |
| | | |
| | | import com.doumee.biz.zbom.model.zhongtai.*; |
| | | import com.doumee.biz.zbom.model.zhongtai.response.*; |
| | | import com.doumee.dao.business.MemberMapper; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * å¿é¦ä¸å°å¯¹æ¥ä¸å¡æ¥å£ |
| | |
| | | public interface ZbomZhongTaiService { |
| | | |
| | | |
| | | ZTUserGetTokenResponse getUserToken(ZTUserGetTokenRequest param); |
| | | ZTUserGetTokenResponse userUpdateInfo(ZTUserInfoUpdateRequest param); |
| | | boolean userLogout(ZTBaseRequst param); |
| | | List<ZTCatalogInfoResponse> getCatalogList(ZTCatalogListRequest param); |
| | | ZTBasePageResponse<ZTContentListResponse> pageContentList(ZTContentListRequest param); |
| | | ZTContentInfoResponse getContentInfo(ZTContentInfoRequest param); |
| | | boolean collectDo(ZTActionDoRequest param); |
| | | boolean likeDo(ZTActionBatchDoRequest param); |
| | | boolean shareDo(ZTActionDoRequest param); |
| | | boolean viewDo(ZTActionDoRequest param); |
| | | ZTBasePageResponse<ZTContentListResponse> pageCollectList(ZTContentListRequest param); |
| | | ZTBasePageResponse<ZTContentListResponse> pageLikeList(ZTContentListRequest param); |
| | | List<ZTAreaInfoResponse> getAreaList(ZTAreaListRequest param); |
| | | |
| | | |
| | | |
| | | } |
| | |
| | | import com.doumee.biz.zbom.model.CrmCustomerInfoModel; |
| | | import com.doumee.biz.zbom.model.CrmCustomerSubmmitModel; |
| | | import com.doumee.core.utils.Constants; |
| | | import com.doumee.core.utils.DateUtil; |
| | | import com.doumee.core.utils.HttpsUtil; |
| | | import com.doumee.dao.business.CrmInterfaceLogMapper; |
| | | import com.doumee.dao.business.CustomerLogMapper; |
| | |
| | | @Autowired |
| | | private RedisTemplate<String, Object> redisTemplate; |
| | | |
| | | |
| | | @Override |
| | | @Async |
| | | public void dealCustomerLogData(CustomerLog customerLog){ |
| | | CrmCustomerSubmmitModel entity = new CrmCustomerSubmmitModel(); |
| | | List<CrmCustomerInfoModel> cusInfo = new ArrayList(); |
| | | CrmCustomerInfoModel crmCustomerInfoModel = new CrmCustomerInfoModel(); |
| | | crmCustomerInfoModel.setId(customerLog.getId()); |
| | | crmCustomerInfoModel.setName(customerLog.getName()); |
| | | crmCustomerInfoModel.setPhone(customerLog.getPhone()); |
| | | crmCustomerInfoModel.setAreaname(customerLog.getAreaName()); |
| | | crmCustomerInfoModel.setAreacode(customerLog.getAreaCode()); |
| | | crmCustomerInfoModel.setOpenid(customerLog.getOpenid()); |
| | | crmCustomerInfoModel.setSource(Constants.CrmSources.SOURCE_ZBJX); |
| | | crmCustomerInfoModel.setChannel(crmCustomerInfoModel.getSource()+"00"); |
| | | crmCustomerInfoModel.setDate(DateUtil.dateToString(customerLog.getCreateDate(),"yyyy/MM/dd HH:mm")); |
| | | cusInfo.add(crmCustomerInfoModel); |
| | | entity.setCusInfo(cusInfo); |
| | | this.postDataToCrm(entity); |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | /** |
| | | * å¿é¦å®¢æ·ä¿¡æ¯æäº¤æ¥å£ |
| | | * @param entity |
| | |
| | | String type = "postCusData"; |
| | | String appid = (String) redisTemplate.opsForValue().get(Constants.RedisKeys.ZBOM_CRM_API_KEY); |
| | | String urlStr = (String)redisTemplate.opsForValue().get(Constants.RedisKeys.ZBOM_CRM_API_URL) ; |
| | | |
| | | long _t = System.currentTimeMillis(); |
| | | String crmInfo="æäº¤å¤±è´¥"; |
| | | if (StringUtils.isNotBlank(appid)||StringUtils.isNotBlank(urlStr)) { |
| | | String token = DigestUtils.md5Hex(type + _t + appid); |
| | | String url = urlStr + "?type=" + type + "&_t=" + _t + "&token=" + token;// æäº¤CRMå°å |
| | | String param = JSONObject.toJSONString(entity); |
| | | int success =1; |
| | | String result = null; |
| | | int success =1; |
| | | String url = urlStr; |
| | | try { |
| | | String token = DigestUtils.md5Hex(type + _t + appid); |
| | | url = urlStr + "?type=" + type + "&_t=" + _t + "&token=" + token;// æäº¤CRMå°å |
| | | result = HttpsUtil.postJson(url,param); |
| | | if (StringUtils.isNotBlank(result)) { |
| | | JSONObject r = JSONObject.parseObject(result.replace("(", "").replace(")", "")); |
| | |
| | | .set(CustomerLog::getCrmDate,new Date() ));// æ´æ°ç¶æ |
| | | return status;// é»è®¤å¤±è´¥ |
| | | } |
| | | |
| | | public void saveInterfaceLog(String url,String name,String param,Integer success,String respone){ |
| | | if(crmInterfaceLogMapper ==null){ |
| | | return; |
| | |
| | | users.setIsdeleted(Constants.ZERO); |
| | | users.setRemark(JSONObject.toJSONString(upateUserModel)); |
| | | users.setRoleNames(null); |
| | | users.setRoleCodes(null); |
| | | users.setRoleIds(null); |
| | | users.setUserTypes(null); |
| | | if( upateUserModel.getUserTypes() !=null){ |
| | |
| | | if(StringUtils.isBlank(users.getRoleNames())){ |
| | | users.setRoleNames(""); |
| | | } |
| | | users.setRoleIds(users.getRoleIds()+t.getId()+"["+t.getId()+"];"); |
| | | if(StringUtils.isBlank(users.getRoleCodes())){ |
| | | users.setRoleCodes(""); |
| | | } |
| | | users.setRoleIds(users.getRoleIds()+"["+t.getId()+"];"); |
| | | users.setRoleNames(users.getRoleNames()+"["+t.getName()+"];"); |
| | | users.setRoleCodes(users.getRoleCodes()+"["+t.getCode()+"];"); |
| | | } |
| | | } |
| | | if(upateUserModel.getJobs()!=null){ |
| | |
| | | .last("limit 1")); |
| | | users.setDepartmentId(shop ==null?null:shop.getId()); |
| | | } |
| | | |
| | | } |
| | | |
| | | return users; |
| | | |
| | | } |
| | | |
| | | public String getToken(String uuid,String time) { |
| | |
| | | } |
| | | @Override |
| | | @Async |
| | | public void saveInterfaceLog(String url,String name, String token, String uuid, String timestamp, Object obj,Integer success,String respone){ |
| | | public void saveInterfaceLog(String url,int type,String name, String token, String uuid, String timestamp, Object obj,Integer success,String respone){ |
| | | Map<String,Object> map = new HashMap<>(); |
| | | map.put("token",token); |
| | | map.put("uuid",uuid); |
| | |
| | | log.setName(name); |
| | | log.setIsdeleted(Constants.ZERO); |
| | | log.setRequest(JSONObject.toJSONString(map)); |
| | | log.setType(Constants.ONE); |
| | | log.setType(type); |
| | | log.setSuccess(success); |
| | | log.setRepose(respone); |
| | | iamInterfaceLogMapper.insert(log); |
| | |
| | | * @author æ±è¹è¹ |
| | | * @date 2023/11/30 15:33 |
| | | */ |
| | | @Service |
| | | //@Service |
| | | public class ZbomSMSServiceImpl implements ZbomSMSService { |
| | | |
| | | @Autowired |
| | |
| | | |
| | | public static void main(String[] args) { |
| | | ZbomSMSServiceImpl obj = new ZbomSMSServiceImpl(); |
| | | obj.sendMessage("æ¨çéªè¯ç æ¯765412ï¼æ¤éªè¯ç ç¨äºéç½®å¯ç ã3åéå
ææã","15345690849"); |
| | | obj.sendMessage("æ¨çéªè¯ç æ¯765412ï¼æ¤éªè¯ç ç¨äºéç½®å¯ç ã3åéå
ææã","18156091665"); |
| | | } |
| | | /** |
| | | * å¿é¦å®¢æ·ä¿¡æ¯æäº¤æ¥å£ |
| | |
| | | if(StringUtils.isBlank(content)){ |
| | | return false; |
| | | } |
| | | // String appkey ="581ba98d70ae2b85c4ecb9c785"; |
| | | // String urlStr = "http://wx.zhibang.com/api/QR/Face_UserSms?TenantId=2&smstype=6&" ; |
| | | String appkey = (String) redisTemplate.opsForValue().get(Constants.RedisKeys.ZBOM_SMS_API_KEY); |
| | | String urlStr = (String)redisTemplate.opsForValue().get(Constants.RedisKeys.ZBOM_SMS_API_URL) ; |
| | | try { |
| | |
| | | saveInterfaceLog(urlStr,"å¿é¦çä¿¡å鿥å£", sb.toString(), 0,inputline); |
| | | return true;// |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | return false; |
| | | } |
| | | |
| | |
| | | log.setCreateDate(new Date()); |
| | | log.setUrl(url); |
| | | log.setEditDate(log.getCreateDate()); |
| | | log.setPlat(Constants.ZERO); |
| | | log.setPlat(Constants.ONE); |
| | | log.setName(name); |
| | | log.setIsdeleted(Constants.ZERO); |
| | | log.setRequest(param); |
| | |
| | | package com.doumee.biz.zbom.impl; |
| | | |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.alibaba.fastjson.TypeReference; |
| | | import com.doumee.biz.zbom.ZbomZhongTaiService; |
| | | import com.doumee.biz.zbom.model.zhongtai.*; |
| | | import com.doumee.biz.zbom.model.zhongtai.response.*; |
| | | import com.doumee.core.haikang.model.HKConstants; |
| | | import com.doumee.core.haikang.model.HKTools; |
| | | import com.doumee.core.haikang.model.param.BaseResponse; |
| | | import com.doumee.core.haikang.model.param.request.VisitAppointmentCancelRequest; |
| | | import com.doumee.core.utils.Constants; |
| | | import com.doumee.core.utils.HttpsUtil; |
| | | import com.doumee.dao.business.CrmInterfaceLogMapper; |
| | | import com.doumee.dao.business.InterfaceLogMapper; |
| | | import com.doumee.dao.business.MemberMapper; |
| | | import com.doumee.dao.business.model.CrmInterfaceLog; |
| | | import com.doumee.dao.business.model.InterfaceLog; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.data.redis.core.RedisTemplate; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.util.Date; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * 人åä¿¡æ¯è¡¨Serviceå®ç° |
| | |
| | | * @date 2023/11/30 15:33 |
| | | */ |
| | | @Service |
| | | @Slf4j |
| | | public class ZbomZhongTaiServiceImpl implements ZbomZhongTaiService { |
| | | |
| | | @Autowired |
| | | private MemberMapper memberMapper; |
| | | private InterfaceLogMapper interfaceLogMapper; |
| | | @Autowired |
| | | private RedisTemplate<String, Object> redisTemplate; |
| | | |
| | | /** |
| | | * è·åç¨æ·ç»étoken |
| | | * @param param |
| | | * @return |
| | | */ |
| | | @Override |
| | | public ZTUserGetTokenResponse getUserToken(ZTUserGetTokenRequest param){ |
| | | ZTBaseResponse<ZTUserGetTokenResponse> result = sendHttpRequest( |
| | | ZTConstants.IntegerUrl.USER_GET_TOKEN_URL, |
| | | ZTConstants.IntegerName.USER_GET_TOKEN_NAME, |
| | | param.getToken(), |
| | | param.getUserType(), |
| | | JSONObject.toJSONString(param )); |
| | | if(result!=null){ |
| | | return result.getData(); |
| | | } |
| | | return null; |
| | | } |
| | | /** |
| | | * ç¨æ·ä¿¡æ¯åæ¥ |
| | | * @param param |
| | | * @return |
| | | */ |
| | | @Override |
| | | public ZTUserGetTokenResponse userUpdateInfo(ZTUserInfoUpdateRequest param){ |
| | | ZTBaseResponse<ZTUserGetTokenResponse> result = sendHttpRequest( |
| | | ZTConstants.IntegerUrl.USER_UPDATE_URL, |
| | | ZTConstants.IntegerName.USER_UPDATE_NAME, |
| | | param.getToken(), |
| | | param.getUserType(), |
| | | JSONObject.toJSONString(param )); |
| | | if(result!=null){ |
| | | return result.getData(); |
| | | } |
| | | return null; |
| | | } |
| | | /** |
| | | * 注éç¨æ· |
| | | * @param param |
| | | * @return |
| | | */ |
| | | @Override |
| | | public boolean userLogout(ZTBaseRequst param){ |
| | | ZTBaseResponse result = sendHttpRequest( |
| | | ZTConstants.IntegerUrl.USER_LOGOUT_URL, |
| | | ZTConstants.IntegerName.USER_LOGOUT_NAME, |
| | | param.getToken(), |
| | | param.getUserType(), |
| | | JSONObject.toJSONString(param )); |
| | | if(result!=null ){ |
| | | return true; |
| | | } |
| | | return false; |
| | | } |
| | | |
| | | /** |
| | | * è·ååç±»ååç±»ä¸çæ ç¾ |
| | | * @param param |
| | | * @return |
| | | */ |
| | | @Override |
| | | public List<ZTCatalogInfoResponse> getCatalogList(ZTCatalogListRequest param){ |
| | | ZTBaseResponse<List<ZTCatalogInfoResponse>> result = sendHttpRequest( |
| | | ZTConstants.IntegerUrl.CATALOG_LIST_URL, |
| | | ZTConstants.IntegerName.CATALOG_LIST_NAME, |
| | | param.getToken(), |
| | | param.getUserType(), |
| | | JSONObject.toJSONString(param )); |
| | | if(result!=null){ |
| | | return result.getData(); |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | /** |
| | | * è·åå
容å表å页 |
| | | * @param param |
| | | * @return |
| | | */ |
| | | @Override |
| | | public ZTBasePageResponse<ZTContentListResponse> pageContentList(ZTContentListRequest param){ |
| | | ZTBaseResponse<ZTBasePageResponse<ZTContentListResponse>> result = sendHttpRequest( |
| | | ZTConstants.IntegerUrl.CONTENT_LIST_URL, |
| | | ZTConstants.IntegerName.CONTENT_LIST_NAME, |
| | | param.getToken(), |
| | | param.getUserType(), |
| | | JSONObject.toJSONString(param )); |
| | | if(result!=null){ |
| | | return result.getData(); |
| | | } |
| | | return null; |
| | | } |
| | | /** |
| | | * è·åå
容详æ
|
| | | * @param param |
| | | * @return |
| | | */ |
| | | @Override |
| | | public ZTContentInfoResponse getContentInfo(ZTContentInfoRequest param){ |
| | | ZTBaseResponse<ZTContentInfoResponse> result = sendHttpRequest( |
| | | ZTConstants.IntegerUrl.CONTENT_INFO_URL+ param.getArticleId(), |
| | | ZTConstants.IntegerName.CONTENT_INFO_NAME, |
| | | param.getToken(), |
| | | param.getUserType(), |
| | | JSONObject.toJSONString(param )); |
| | | if(result!=null){ |
| | | return result.getData(); |
| | | } |
| | | return null; |
| | | } |
| | | /** |
| | | * å
容æ¶è |
| | | * @param param |
| | | * @return |
| | | */ |
| | | @Override |
| | | public boolean collectDo(ZTActionDoRequest param){ |
| | | ZTBaseResponse result = sendHttpRequest( |
| | | ZTConstants.IntegerUrl.COLLECT_DO_URL, |
| | | ZTConstants.IntegerName.COLLECT_DO_NAME, |
| | | param.getToken(), |
| | | param.getUserType(), |
| | | JSONObject.toJSONString(param )); |
| | | if(result!=null ){ |
| | | return true; |
| | | } |
| | | return false; |
| | | } |
| | | /** |
| | | * å
容忬¢ |
| | | * @param param |
| | | * @return |
| | | */ |
| | | @Override |
| | | public boolean likeDo(ZTActionBatchDoRequest param){ |
| | | ZTBaseResponse result = sendHttpRequest( |
| | | ZTConstants.IntegerUrl.LIKE_DO_URL, |
| | | ZTConstants.IntegerName.LIKE_DO_NAME, |
| | | param.getToken(), |
| | | param.getUserType(), |
| | | JSONObject.toJSONString(param )); |
| | | if(result!=null ){ |
| | | return true; |
| | | } |
| | | return false; |
| | | } |
| | | /** |
| | | * å
容å享 |
| | | * @param param |
| | | * @return |
| | | */ |
| | | @Override |
| | | public boolean shareDo(ZTActionDoRequest param){ |
| | | ZTBaseResponse result = sendHttpRequest( |
| | | ZTConstants.IntegerUrl.SHARE_DO_URL, |
| | | ZTConstants.IntegerName.SHARE_DO_NAME, |
| | | param.getToken(), |
| | | param.getUserType(), |
| | | JSONObject.toJSONString(param )); |
| | | if(result!=null ){ |
| | | return true; |
| | | } |
| | | return false; |
| | | } |
| | | /** |
| | | * å
容æµè§ |
| | | * @param param |
| | | * @return |
| | | */ |
| | | @Override |
| | | public boolean viewDo(ZTActionDoRequest param){ |
| | | ZTBaseResponse result = sendHttpRequest( |
| | | ZTConstants.IntegerUrl.VIEW_DO_URL, |
| | | ZTConstants.IntegerName.VIEW_DO_NAME, |
| | | param.getToken(), |
| | | param.getUserType(), |
| | | JSONObject.toJSONString(param )); |
| | | if(result!=null ){ |
| | | return true; |
| | | } |
| | | return false; |
| | | } |
| | | /** |
| | | * è·åæçæ¶èå表å页 |
| | | * @param param |
| | | * @return |
| | | */ |
| | | @Override |
| | | public ZTBasePageResponse<ZTContentListResponse> pageCollectList(ZTContentListRequest param){ |
| | | ZTBaseResponse< ZTBasePageResponse<ZTContentListResponse>> result = sendHttpRequest( |
| | | ZTConstants.IntegerUrl.COLLECT_LIST_URL, |
| | | ZTConstants.IntegerName.COLLECT_LIST_NAME, |
| | | param.getToken(), |
| | | param.getUserType(), |
| | | JSONObject.toJSONString(param )); |
| | | if(result!=null){ |
| | | return result.getData(); |
| | | } |
| | | return null; |
| | | } |
| | | /** |
| | | * è·åæç忬¢å表å页 |
| | | * @param param |
| | | * @return |
| | | */ |
| | | @Override |
| | | public ZTBasePageResponse<ZTContentListResponse> pageLikeList(ZTContentListRequest param){ |
| | | |
| | | ZTBaseResponse< ZTBasePageResponse<ZTContentListResponse>> result = sendHttpRequest( |
| | | ZTConstants.IntegerUrl.LIKE_LIST_URL, |
| | | ZTConstants.IntegerName.LIKE_LIST_NAME, |
| | | param.getToken(), |
| | | param.getUserType(), |
| | | JSONObject.toJSONString(param )); |
| | | if(result!=null){ |
| | | return result.getData(); |
| | | } |
| | | return null; |
| | | |
| | | } |
| | | /** |
| | | * è·åè·åçå¸åºéå |
| | | * @param param |
| | | * @return |
| | | */ |
| | | @Override |
| | | public List<ZTAreaInfoResponse> getAreaList(ZTAreaListRequest param){ |
| | | if(StringUtils.isBlank(param.getPid())){ |
| | | param.setPid(ZTConstants.DEFAULT_PID);//é»è®¤åå
¨é¨ç份 |
| | | } |
| | | ZTBaseResponse<List<ZTAreaInfoResponse>> result = sendHttpRequest( |
| | | ZTConstants.IntegerUrl.AREA_LIST_URL, |
| | | ZTConstants.IntegerName.AREA_LIST_NAME, |
| | | param.getToken(), |
| | | param.getUserType(), |
| | | JSONObject.toJSONString(param )); |
| | | if(result!=null){ |
| | | return result.getData(); |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | |
| | | public <T> ZTBaseResponse<T> sendHttpRequest(String url,String name,String token,String userType,String param){ |
| | | log.info("ã"+name+"ã================å¼å§===="+ JSONObject.toJSONString(param)); |
| | | String res = null; |
| | | int success = 0; |
| | | try { |
| | | |
| | | Map<String,String> headers = new HashMap<>(); |
| | | headers.put(ZTConstants.HEADER_TOKEN,token); |
| | | headers.put(ZTConstants.HEADER_USERTYPE,userType); |
| | | String index = (String) redisTemplate.opsForValue().get(Constants.RedisKeys.ZBOM_ZHONGTAI_API_URL); |
| | | res = HttpsUtil.postJsonWithHeaders(index+url,param,headers); |
| | | TypeReference typeReference = |
| | | new TypeReference<ZTBaseResponse<T>>(){}; |
| | | ZTBaseResponse<T> result = JSONObject.parseObject(res, typeReference.getType()); |
| | | logResult(result,name); |
| | | if(StringUtils.equals(result.getCode(),ZTConstants.CODE_SUCCESS)){ |
| | | return result; |
| | | }else{ |
| | | success =1; |
| | | } |
| | | }catch (Exception e){ |
| | | success = 1; |
| | | log.error("ã"+name+"ã================失败===="+ JSONObject.toJSONString(param)); |
| | | }finally { |
| | | saveInterfaceLog(url,name,param,success,res); |
| | | } |
| | | return null; |
| | | } |
| | | public void saveInterfaceLog(String url,String name,String param,Integer success,String respone){ |
| | | if(interfaceLogMapper ==null){ |
| | | return; |
| | | } |
| | | InterfaceLog log = new InterfaceLog(); |
| | | log.setCreateDate(new Date()); |
| | | log.setUrl(url); |
| | | log.setEditDate(log.getCreateDate()); |
| | | log.setPlat(Constants.ZERO); |
| | | log.setName(name); |
| | | log.setIsdeleted(Constants.ZERO); |
| | | log.setRequest(param); |
| | | log.setType(Constants.ONE); |
| | | log.setSuccess(success); |
| | | log.setRepose(respone); |
| | | interfaceLogMapper.insert(log); |
| | | } |
| | | private static void logResult(ZTBaseResponse res,String name) { |
| | | if(StringUtils.equals(res.getCode(), ZTConstants.CODE_SUCCESS)){ |
| | | log.info("ãä¸å°æ¥å£ï¼"+name+"ã================æå====\n"+res); |
| | | }else{ |
| | | log.error("ãä¸å°æ¥å£ï¼"+name+"ã================失败====ï¼\n"+ res); |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.biz.zbom.model.zhongtai; |
| | | |
| | | import lombok.Data; |
| | | |
| | | import java.util.List; |
| | | |
| | | |
| | | /** |
| | | * ç¨æ·æ¶èãæµè§ãç¹èµãå享+1 |
| | | */ |
| | | @Data |
| | | public class ZTActionBatchDoRequest extends ZTBaseRequst { |
| | | /** |
| | | * æç« ID |
| | | */ |
| | | private List<ZTActionDoRequest> list; |
| | | |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.biz.zbom.model.zhongtai; |
| | | |
| | | import lombok.Data; |
| | | |
| | | |
| | | /** |
| | | * ç¨æ·æ¶èãæµè§ãç¹èµãå享+1 |
| | | */ |
| | | @Data |
| | | public class ZTActionDoRequest extends ZTBaseRequst { |
| | | /** |
| | | * æç« ID |
| | | */ |
| | | private String articleId; |
| | | /** |
| | | * OpenID |
| | | */ |
| | | private String openId; |
| | | |
| | | |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.biz.zbom.model.zhongtai; |
| | | |
| | | import lombok.Data; |
| | | |
| | | |
| | | /** |
| | | * ç¨æ·æ¶èãæµè§ãç¹èµãå享+1 |
| | | */ |
| | | @Data |
| | | public class ZTAreaListRequest extends ZTBaseRequst{ |
| | | /** |
| | | * ç¶çº§ç¼ç |
| | | */ |
| | | private String pid; |
| | | |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.biz.zbom.model.zhongtai; |
| | | |
| | | import lombok.Data; |
| | | |
| | | |
| | | /** |
| | | * ç¨æ·æ¶èãæµè§ãç¹èµãå享+1 |
| | | */ |
| | | @Data |
| | | public class ZTBaseRequst { |
| | | /** |
| | | * ç¶çº§ç¼ç |
| | | */ |
| | | private String userType; |
| | | private String token; |
| | | private String openid; |
| | | |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.biz.zbom.model.zhongtai; |
| | | |
| | | import lombok.Data; |
| | | |
| | | |
| | | /** |
| | | * ç¨æ·éåº |
| | | */ |
| | | @Data |
| | | public class ZTCatalogListRequest extends ZTBaseRequst{ |
| | | /** |
| | | * ç®å½å¯ä¸ç¼ç ,ç¼ç 为空ï¼åè¿åå
¨é¨ä¸çº§ç®å½ |
| | | */ |
| | | private String catalogCode; |
| | | |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.biz.zbom.model.zhongtai; |
| | | |
| | | import lombok.Data; |
| | | |
| | | |
| | | /** |
| | | * ç¨æ·éåº |
| | | */ |
| | | @Data |
| | | public class ZTCollectListRequest extends ZTBaseRequst{ |
| | | /** |
| | | * æ¶èç±»åï¼äº§åï¼æ¡ä¾ï¼å®æ¯ å¿
é |
| | | */ |
| | | private String favoriteType; |
| | | /** |
| | | * OpenID å¿
é |
| | | */ |
| | | private String openId; |
| | | /** |
| | | * æåºæ¹å¼ å¯é |
| | | */ |
| | | private String sort; |
| | | |
| | | |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.biz.zbom.model.zhongtai; |
| | | |
| | | public class ZTConstants { |
| | | |
| | | public static String PLATFORM_MP_WX = "mp-weixin";//å°ç¨åºå¹³å° |
| | | public static String PLATFORM_WEBPAD = "web-pad";//PAD端 |
| | | public static String CODE_SUCCESS = "200";//æ¥å£æåè¿åç |
| | | public static String HEADER_USERTYPE = "userType";//userTypeå¨HEADERä¸çåå |
| | | public static String HEADER_TOKEN = "token";//token |
| | | public static String DEFAULT_PID = "1";//é»è®¤çå¸åºpid=1表示åå
¨ä¸å½ |
| | | public interface IntegerUrl{ |
| | | String USER_UPDATE_URL ="customer/api/sync"; |
| | | String USER_GET_TOKEN_URL ="/customer/api/login"; |
| | | String USER_LOGOUT_URL ="/customer/api/disable"; |
| | | String CATALOG_LIST_URL ="/content/api/catalog"; |
| | | String CONTENT_LIST_URL ="/content/api/page"; |
| | | String CONTENT_INFO_URL ="/content/api/detail/"; |
| | | String COLLECT_DO_URL ="/content/api/collect"; |
| | | String VIEW_DO_URL ="/content/api/view"; |
| | | String SHARE_DO_URL ="/content/api/share"; |
| | | String LIKE_DO_URL ="/content/api/like"; |
| | | String COLLECT_LIST_URL ="/behavior/getFavorite"; |
| | | String LIKE_LIST_URL ="/behavior/getLike"; |
| | | String AREA_LIST_URL ="/base/admin/bAreaRegion/getChildren"; |
| | | } |
| | | public interface IntegerName{ |
| | | String USER_UPDATE_NAME ="ç¨æ·ä¿¡æ¯åæ¥"; |
| | | String USER_GET_TOKEN_NAME ="ç¨æ·ç»é"; |
| | | String USER_LOGOUT_NAME ="注éç¨æ·"; |
| | | String CATALOG_LIST_NAME ="è·ååç±»ååç±»ä¸çæ ç¾"; |
| | | String CONTENT_LIST_NAME ="è·åå
容å表å页"; |
| | | String CONTENT_INFO_NAME ="è·åå
容详æ
"; |
| | | String COLLECT_DO_NAME ="å
容æ¶è"; |
| | | String VIEW_DO_NAME ="å
容æµè§"; |
| | | String SHARE_DO_NAME ="å
容å享"; |
| | | String LIKE_DO_NAME ="å
容忬¢"; |
| | | String COLLECT_LIST_NAME ="è·åæçæ¶èå表å页"; |
| | | String LIKE_LIST_NAME ="è·åæç忬¢å表å页"; |
| | | String AREA_LIST_NAME ="è·åçå¸åºéå"; |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.biz.zbom.model.zhongtai; |
| | | |
| | | import lombok.Data; |
| | | |
| | | |
| | | /** |
| | | * ç¨æ·éåº |
| | | */ |
| | | @Data |
| | | public class ZTContentInfoRequest extends ZTBaseRequst{ |
| | | /** |
| | | * 临æ¶ç¥¨æ® |
| | | */ |
| | | private String articleId; |
| | | |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.biz.zbom.model.zhongtai; |
| | | |
| | | import lombok.Data; |
| | | |
| | | import java.util.List; |
| | | |
| | | |
| | | /** |
| | | * ç¨æ·éåº |
| | | */ |
| | | @Data |
| | | public class ZTContentListRequest extends ZTBaseRequst { |
| | | /** |
| | | * ç®å½å¯ä¸ç¼ç ï¼ç®å½å¯ä¸ç¼ç |
| | | */ |
| | | private String catalogCode; |
| | | /** |
| | | * æ¯å¦ç½®é¡¶ï¼é»è®¤false |
| | | */ |
| | | private Boolean isTop; |
| | | /** |
| | | * å½å页 |
| | | */ |
| | | private String pageNum; |
| | | /** |
| | | * æ¯é¡µæ¡æ° |
| | | */ |
| | | private String pageSize; |
| | | /** |
| | | * æç´¢å
³é®åï¼æ ¹æ®æ é¢æç´¢å
³é®å |
| | | */ |
| | | private String search; |
| | | /** |
| | | * æåºæ¹å¼ï¼NORMAL - é»è®¤ |
| | | * HOT - æç |
| | | * LATEST - ææ° |
| | | */ |
| | | private String sortType; |
| | | /** |
| | | * å¤ä¸ªæ ç¾å¯ä¸ç¼ç çå表ï¼å¤ä¸ªæ ç¾å¯ä¸ç¼ç çå表 |
| | | */ |
| | | private List<String> tagCode; |
| | | |
| | | |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.biz.zbom.model.zhongtai; |
| | | |
| | | import lombok.Data; |
| | | |
| | | |
| | | /** |
| | | * ç¨æ·è·å临æ¶ç¥¨æ® |
| | | */ |
| | | @Data |
| | | public class ZTUserGetTokenRequest extends ZTBaseRequst { |
| | | /** |
| | | * åºç¨ç ï¼åºç¨ç ï¼ææ¶ä¸åè¦æ±ï¼ç¨ä½ç»å½è¡ä¸ºæ¥å¿è®°å½ |
| | | */ |
| | | private String appCode; |
| | | /** |
| | | * åºç¨IDï¼åºç¨ID, ç¨ä½ç»å½è¡ä¸ºæ¥å¿è®°å½ |
| | | */ |
| | | private String appId; |
| | | /** |
| | | * OpenIDï¼OpenIDææºå· |
| | | */ |
| | | private String openId; |
| | | /** |
| | | * ååºç¨ç ï¼ååºç¨ç ï¼ææ¶ä¸åè¦æ±ï¼ç¨ä½ç»å½è¡ä¸ºæ¥å¿è®°å½ |
| | | */ |
| | | private String subAppCode; |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.biz.zbom.model.zhongtai; |
| | | |
| | | import lombok.Data; |
| | | |
| | | /** |
| | | * æ ¹æ®OpenIDç»å®ä¸å°çç¨æ·å
³ç³»åç¨æ·ä¿¡æ¯ï¼è¿åä¸å°çç¨æ·ä»¤ç |
| | | */ |
| | | @Data |
| | | public class ZTUserInfoUpdateRequest extends ZTBaseRequst{ |
| | | /** |
| | | * å°åï¼çå¸åºç宿´åç¬¦ä¸²ï¼æ¯å¦"广ä¸ç广å·å¸ç½äºåº" |
| | | */ |
| | | private String address; |
| | | /** |
| | | * å¹´é¾ï¼å¡«æ°å, "18" |
| | | */ |
| | | private String age; |
| | | /** |
| | | * åºç¨ç ï¼åºç¨ç ï¼ææ¶ä¸åè¦æ±ï¼ç¨ä½åæ¥ä¿¡æ¯è¡ä¸ºæ¥å¿è®°å½ |
| | | */ |
| | | private String appCode; |
| | | /** |
| | | * åºç¨IDï¼å°ç¨åºçAppID å¿
é |
| | | */ |
| | | private String appId; |
| | | /** |
| | | * 头åï¼å¤´åå°å, |
| | | * æ¯å¦"https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=64&d=identicon" |
| | | */ |
| | | private String avatarUrl; |
| | | /** |
| | | * çæ¥ï¼XXXXå¹´XæXæ¥ |
| | | */ |
| | | private String birthday; |
| | | /** |
| | | * å®¢æ·æ¸ 鿥æºç¼ç |
| | | */ |
| | | private String channelSourceCode; |
| | | /** |
| | | * 客æ·åä½ |
| | | */ |
| | | private String customerCompany; |
| | | /** |
| | | * 客æ·çº§å« |
| | | */ |
| | | private String customerLevel; |
| | | /** |
| | | * å®¢æ·æå±è¡ä¸ |
| | | */ |
| | | private String customerTrade; |
| | | /** |
| | | * çµåé®ç®± |
| | | */ |
| | | private String email; |
| | | /** |
| | | * 详ç»å°åï¼åºä»¥ä¸ç详ç»å°å |
| | | */ |
| | | private String fullAddress; |
| | | /** |
| | | * æ§å«ï¼æ§å«ï¼âç·","女" |
| | | */ |
| | | private String gender; |
| | | /** |
| | | * æ¿å±é¢ç§¯ï¼â120â |
| | | */ |
| | | private String houseArea; |
| | | /** |
| | | * æ¿å±æ·åï¼"3室ä¸å
ä¸å¨ä¸å«" |
| | | */ |
| | | private String houseLayout; |
| | | /** |
| | | * èº«ä»½è¯ |
| | | */ |
| | | private String idCard; |
| | | /** |
| | | * å§å |
| | | */ |
| | | private String name; |
| | | /** |
| | | * OpenIDï¼å¾®ä¿¡ç¨æ·çOpenID å¿
é |
| | | */ |
| | | private String openId; |
| | | /** |
| | | * ææº |
| | | */ |
| | | private String phone; |
| | | /** |
| | | * å¹³å°ç±»åï¼å°ç¨åºä¼ mp-weixinï¼padç«¯ä¼ web-pad å¿
é |
| | | */ |
| | | private String platform; |
| | | /** |
| | | * èä¸ |
| | | */ |
| | | private String position; |
| | | /** |
| | | * æå产åç¼ç ï¼ç¨éå·éå¼ |
| | | */ |
| | | private String productCode; |
| | | /** |
| | | * æ¨è人 |
| | | */ |
| | | private String referee; |
| | | /** |
| | | * 夿³¨ |
| | | */ |
| | | private String remark; |
| | | /** |
| | | * æ¥æºç³»ç»å®¢æ·IDï¼å¯¹åºçæ¥æºç³»ç»éç客æ·ID |
| | | */ |
| | | private String sourceCustomerId; |
| | | /** |
| | | * ååºç¨ç ï¼ååºç¨ç ï¼ææ¶ä¸åè¦æ±ï¼ç¨ä½åæ¥ä¿¡æ¯è¡ä¸ºæ¥å¿è®°å½ |
| | | */ |
| | | private String subAppCode; |
| | | /** |
| | | * UnionIdï¼å¾®ä¿¡ç¨æ·çUnionID |
| | | */ |
| | | private String unionId; |
| | | /** |
| | | * å°åºï¼âXXå°åºâ |
| | | */ |
| | | private String uptown; |
| | | /** |
| | | * å¾®ä¿¡å· |
| | | */ |
| | | private String weixin; |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.biz.zbom.model.zhongtai; |
| | | |
| | | import lombok.Data; |
| | | |
| | | |
| | | /** |
| | | * ç¨æ·éåº |
| | | */ |
| | | @Data |
| | | public class ZTUserLogoutRequest extends ZTBaseRequst{ |
| | | /** |
| | | * 临æ¶ç¥¨æ® |
| | | */ |
| | | private String token; |
| | | |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.biz.zbom.model.zhongtai.response; |
| | | |
| | | import lombok.Data; |
| | | |
| | | import java.util.Map; |
| | | |
| | | |
| | | /** |
| | | * çå¸åºè¯¦æ
è¿å |
| | | */ |
| | | @Data |
| | | public class ZTAreaInfoResponse { |
| | | /** |
| | | * id":â11000000000æ¥" |
| | | * pid":"1" |
| | | * "shortname":"å京â |
| | | * "name":"å京å¸" |
| | | * "mergename":"ä¸å½.å京å¸" |
| | | * "level": 2 |
| | | */ |
| | | private String id; |
| | | private String pid; |
| | | private String code; |
| | | private String shortname; |
| | | private String mergename; |
| | | private String name; |
| | | //å±çº§ |
| | | private String level; |
| | | |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.biz.zbom.model.zhongtai.response; |
| | | |
| | | import lombok.Data; |
| | | |
| | | import java.util.List; |
| | | |
| | | @Data |
| | | public class ZTBasePageResponse<T> { |
| | | /** |
| | | * å½å页 |
| | | */ |
| | | private double current; |
| | | /** |
| | | * è®°å½å表 |
| | | */ |
| | | private List<T> records; |
| | | /** |
| | | * æ¯é¡µæ¾ç¤ºæ¡æ° |
| | | */ |
| | | private double size; |
| | | /** |
| | | * æ»è®°å½æ° |
| | | */ |
| | | private double total; |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.biz.zbom.model.zhongtai.response; |
| | | |
| | | import lombok.Data; |
| | | |
| | | @Data |
| | | public class ZTBaseResponse<T> { |
| | | /** |
| | | *æ¯å¦æå,true:æå;false:失败 |
| | | */ |
| | | private Boolean success; |
| | | /** |
| | | * æ¶æ¯ç ,200:æå;å
¶ä»code:失败 |
| | | */ |
| | | private String code; |
| | | /** |
| | | * æç¤ºæ¶æ¯ |
| | | */ |
| | | private String msg; |
| | | /** |
| | | * æ°æ® |
| | | */ |
| | | private T data; |
| | | |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.biz.zbom.model.zhongtai.response; |
| | | |
| | | import lombok.Data; |
| | | |
| | | import java.util.List; |
| | | |
| | | |
| | | /** |
| | | * ç¨æ·éåº |
| | | */ |
| | | @Data |
| | | public class ZTCatalogInfoResponse { |
| | | /** |
| | | * ç®å½å¯ä¸ç¼ç |
| | | */ |
| | | private String code; |
| | | /** |
| | | * ç®å½é¢å¤ä¿¡æ¯ |
| | | */ |
| | | private String expandInfo; |
| | | /** |
| | | * ç®å½ID |
| | | */ |
| | | private String id; |
| | | /** |
| | | * ç®å½åç§° |
| | | */ |
| | | private String name; |
| | | /** |
| | | * å°é¢å¾URL |
| | | */ |
| | | private String picture; |
| | | /** |
| | | * ç¶çº§ç®å½ID |
| | | */ |
| | | private String pid; |
| | | /** |
| | | * 夿³¨ |
| | | */ |
| | | private String remark; |
| | | /** |
| | | * ç®å½æåº |
| | | */ |
| | | private String sort; |
| | | |
| | | /** |
| | | * åç®å½ |
| | | */ |
| | | private List<ZTCatalogInfoResponse> childCatalog; |
| | | |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.biz.zbom.model.zhongtai.response; |
| | | |
| | | import lombok.Data; |
| | | |
| | | import java.util.List; |
| | | |
| | | |
| | | /** |
| | | * ç¨æ·éåº |
| | | */ |
| | | @Data |
| | | public class ZTCatalogTagTypeResponse { |
| | | /** |
| | | * åç®å½ |
| | | */ |
| | | private List<ZTCatalogTagTypeResponse> tags; |
| | | |
| | | } |
| | | |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.biz.zbom.model.zhongtai.response; |
| | | |
| | | import lombok.Data; |
| | | |
| | | |
| | | /** |
| | | * ç¨æ·éåº |
| | | */ |
| | | @Data |
| | | public class ZTCollectResponse { |
| | | /** |
| | | * æ¶èç±»åï¼äº§åï¼æ¡ä¾ï¼å®æ¯ å¿
é |
| | | */ |
| | | private String favoriteType; |
| | | /** |
| | | * OpenID å¿
é |
| | | */ |
| | | private String openId; |
| | | /** |
| | | * æåºæ¹å¼ å¯é |
| | | */ |
| | | private String sort; |
| | | |
| | | |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.biz.zbom.model.zhongtai.response; |
| | | |
| | | import lombok.Data; |
| | | |
| | | import java.util.Map; |
| | | |
| | | |
| | | /** |
| | | * å
容详æ
è¿å |
| | | */ |
| | | @Data |
| | | public class ZTContentInfoResponse { |
| | | /** |
| | | * ä½è
|
| | | */ |
| | | private String author; |
| | | /** |
| | | * å
容详æ
|
| | | */ |
| | | private Map<String, Object> content; |
| | | /** |
| | | * æç« ç±»å |
| | | */ |
| | | private String contentType; |
| | | /** |
| | | * æç« ID |
| | | */ |
| | | private String id; |
| | | /** |
| | | * è¯è¨ç¼ç |
| | | */ |
| | | private String langCode; |
| | | /** |
| | | * å¤å¾çå表 |
| | | */ |
| | | private String picUrls; |
| | | /** |
| | | * å叿¥æ |
| | | */ |
| | | private String publishDate; |
| | | /** |
| | | * åå¸ç»ç» |
| | | */ |
| | | private String publishDepartment; |
| | | /** |
| | | * åæ é¢ |
| | | */ |
| | | private String subtitle; |
| | | /** |
| | | * æç« æ é¢ |
| | | */ |
| | | private String title; |
| | | |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.biz.zbom.model.zhongtai.response; |
| | | |
| | | import lombok.Data; |
| | | |
| | | |
| | | /** |
| | | * å
容å页å表è¿åå
容 |
| | | */ |
| | | @Data |
| | | public class ZTContentListResponse { |
| | | /** |
| | | * ä½è
|
| | | */ |
| | | private String author; |
| | | /** |
| | | * å°é¢å¾ |
| | | */ |
| | | private String coverImage; |
| | | /** |
| | | * æ¶èé |
| | | */ |
| | | private double favoriteCount; |
| | | /** |
| | | * æç« ID |
| | | */ |
| | | private String id; |
| | | /** |
| | | * æ¯å¦ç½®é¡¶ |
| | | */ |
| | | private String isTop; |
| | | /** |
| | | * è¯è¨ç¼ç |
| | | */ |
| | | private String langCode; |
| | | /** |
| | | * ç¹èµé |
| | | */ |
| | | private double likeCount; |
| | | /** |
| | | * å叿¥æ |
| | | */ |
| | | private String publishDate; |
| | | /** |
| | | * åå¸ç»ç» |
| | | */ |
| | | private String publishDepartment; |
| | | /** |
| | | * é
读é |
| | | */ |
| | | private double readCount; |
| | | /** |
| | | * æåº |
| | | */ |
| | | private String sort; |
| | | /** |
| | | * åæ é¢ |
| | | */ |
| | | private String subtitle; |
| | | /** |
| | | * æ é¢ |
| | | */ |
| | | private String title; |
| | | /** |
| | | * æç« ç±»å |
| | | */ |
| | | private String type; |
| | | /** |
| | | * æç« å¤é¾URLï¼è§é¢åå
¶ä»è·³è½¬é¾æ¥ç±»å |
| | | */ |
| | | private String url; |
| | | |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.biz.zbom.model.zhongtai.response; |
| | | |
| | | import lombok.Data; |
| | | |
| | | @Data |
| | | public class ZTUserGetTokenResponse { |
| | | /** |
| | | *ç¨æ·ä¸´æ¶ç¥¨æ® |
| | | */ |
| | | private String token; |
| | | |
| | | |
| | | } |
| | |
| | | public static <T> ApiResponse<T> success(T data) { |
| | | return ApiResponse.success("è¯·æ±æå", data); |
| | | } |
| | | public static <T> ApiResponse<T> successIam(T data) { |
| | | return ApiResponse.successIam("è¯·æ±æå", data); |
| | | } |
| | | |
| | | /** |
| | | * è¯·æ±æå |
| | | */ |
| | | public static <T> ApiResponse<T> successIam(String message, T data) { |
| | | return new ApiResponse<>(0, Boolean.TRUE, message, data, null); |
| | | } |
| | | |
| | | /** |
| | | * è¯·æ±æå |
| | |
| | | public static final String HK_ROOTORG_CODE ="HK_ROOTORG_CODE" ; |
| | | public static final String HK_ROOTORG_NAME ="HK_ROOTORG_NAME" ; |
| | | public static final String REDIS_TOKEN_KEY = "token_"; |
| | | public static final String CUSTOMER = "CUSTOMER"; |
| | | public static final String BUSINESS = "BUSINESS"; |
| | | |
| | | |
| | | //被æè®¿äººä¿¡æ¯æ ¡éªæ¹å¼ï¼0ææºå·åç¬æ ¡éª 1ææºå·åå§åç»åæ ¡éªï¼ |
| | | public static final String BEVISITED_USER_VALID = "BEVISITED_USER_VALID"; |
| | |
| | | public static final String FILE_DIR = ""; |
| | | public static final String INITIAL_PASSWORD = "INITIAL_PASSWORD"; |
| | | public static final String VALIDATE_VISIT = "VALIDATE_VISIT"; |
| | | public static final String PLATFORM = "mp-weixin"; |
| | | |
| | | // 访客æ¥è®¿é
ç½® |
| | | public static final String VISIT_CONFIG = "VISIT_CONFIG"; |
| | |
| | | |
| | | |
| | | public static final String WX_PLATFORM = "WX_PLATFORM"; |
| | | public static final String ZBOM_ZHONGTAI_API_URL = "ZBOM_ZHONGTAI_API_URL"; |
| | | public static final String WX_PLATFORM_ACCESS_TOKEN = "WX_PLATFORM_ACCESS_TOKEN"; |
| | | public static final String WX_PLATFORM_APPID = "WX_PLATFORM_APPID"; |
| | | public static final String WX_PLATFORM_SECRET = "WX_PLATFORM_SECRET"; |
| | |
| | | public static final String ZBOM_CRM_API_URL = "ZBOM_CRM_API_URL"; |
| | | public static final String ZBOM_CRM_API_KEY = "ZBOM_CRM_API_KEY"; |
| | | public static final String ZBOM_SMS_API_KEY = "ZBOM_SMS_API_KEY"; |
| | | public static final String ZBOM_IAM_API_URL = "ZBOM_IAM_API_URL"; |
| | | public static final String ZBOM_SMS_API_URL = "ZBOM_SMS_API_URL"; |
| | | public static final String WX_PLATFORM_PREFIX = "WX_PLATFORM_PREFIX"; |
| | | |
| | |
| | | public static final String WX_SECRET_PERSONNEL = "WX_SECRET_PERSONNEL"; |
| | | |
| | | |
| | | public interface CrmSources{ |
| | | |
| | | |
| | | String SOURCE_DKXD = "DKXD";// 代客ä¸å(DKXD) |
| | | String SOURCE_LYSJ = "LYSJ";// é¶å
设计(LYSJ) |
| | | String SOURCE_ZBSJSQ = "ZBSJSQ";// å¿é¦è®¾è®¡ç³è¯·(ZBSJSQ) |
| | | String SOURCE_ZBDXFX = "ZBDXFX";// å¿é¦çä¿¡å享(ZBDXFX) |
| | | String SOURCE_ZBLLJL = "ZBLLJL";// å¿é¦æµè§è®°å½å享(ZBLLJL) |
| | | String SOURCE_ZBWDSC = "ZBWDSC";// å¿é¦æçæ¶èå享(ZBWDSC) |
| | | String SOURCE_ZBLYSJ = "ZBLYSJ";// å¿é¦é¶å
设计(ZBLYSJ) |
| | | String SOURCE_ZBLDX = "ZBLDX";// å¿é¦è带æ°(ZBLDX) |
| | | String SOURCE_ZBFGCS = "ZBFGCS";// å¿é¦é£æ ¼æµè¯(ZBFGCS) |
| | | String SOURCE_ZBJX = "DSLX22";// å¿é¦å®¶é(ZBJX) |
| | | } |
| | | |
| | | public interface RedisKeys { |
| | | public static final String IMPORTING_MEMBER ="IMPORTING_MEMBER"; |
| | | public static final String IMPORTING_SHOP ="IMPORTING_SHOP"; |
| | | public static final String IAM_APPID ="IAM_APPID"; |
| | | public static final String ZBOM_CRM_API_KEY ="ZBOM_CRM_API_KEY"; |
| | | public static final String ZBOM_CRM_API_URL ="ZBOM_CRM_API_URL"; |
| | | public static final String ZBOM_SMS_API_KEY ="ZBOM_SMS_API_KEY"; |
| | | public static final String ZBOM_SMS_API_URL ="ZBOM_SMS_API_URL"; |
| | | public static final String IAM_APPKEY ="IAM_APPKEY"; |
| | | public static final String SHOP_TREE ="SHOP_TREE"; |
| | | public static final String ERP_TOKEN ="ERP_TOKEN"; |
| | | public static final long EXPIRE_TIME = 7200; |
| | | String IMPORTING_MEMBER ="IMPORTING_MEMBER"; |
| | | String IMPORTING_SHOP ="IMPORTING_SHOP"; |
| | | String IMPORTING_USERS ="IMPORTING_USERS"; |
| | | String IAM_APPID ="IAM_APPID"; |
| | | String ZBOM_CRM_API_KEY ="ZBOM_CRM_API_KEY"; |
| | | String ZBOM_CRM_API_URL ="ZBOM_CRM_API_URL"; |
| | | String ZBOM_SMS_API_KEY ="ZBOM_SMS_API_KEY"; |
| | | String ZBOM_ZHONGTAI_API_URL ="ZBOM_ZHONGTAI_API_URL"; |
| | | String ZBOM_SMS_API_URL ="ZBOM_SMS_API_URL"; |
| | | String IAM_APPKEY ="IAM_APPKEY"; |
| | | String SHOP_TREE ="SHOP_TREE"; |
| | | String ERP_TOKEN ="ERP_TOKEN"; |
| | | long EXPIRE_TIME = 7200; |
| | | |
| | | public static final String INTERNAL_TOKEN ="INTERNAL_TOKEN"; |
| | | String INTERNAL_TOKEN ="INTERNAL_TOKEN"; |
| | | |
| | | public static final String GOODSORDER_KEY = "ordercode_"; |
| | | public static final String ACTIVITY_SIGN_KEY = "actcode_"; |
| | | public static final String AFTERSALE_KEY = "salecode_"; |
| | | String GOODSORDER_KEY = "ordercode_"; |
| | | String ACTIVITY_SIGN_KEY = "actcode_"; |
| | | String AFTERSALE_KEY = "salecode_"; |
| | | } |
| | | |
| | | |
| | |
| | | int otherDeal = 4;//ä»äººå·²å¤ç |
| | | } |
| | | |
| | | |
| | | /** |
| | | * æ ¹æ®é
ç½®å¤çæ¿å±æ·åä¿¡æ¯ |
| | | * @param layout |
| | | * @return |
| | | */ |
| | | public static String getHouseLayout(String layout){ |
| | | if(StringUtils.isBlank(layout)){ |
| | | return null; |
| | | } |
| | | String [] arr = layout.split("-"); |
| | | StringBuffer stringBuffer = new StringBuffer(); |
| | | for (int i = 0; i < arr.length; i++) { |
| | | if(i==0){ |
| | | stringBuffer.append( i + "室"); |
| | | }else if(i==1){ |
| | | stringBuffer.append( i + "å
"); |
| | | }else if(i==2){ |
| | | stringBuffer.append( i + "å¨"); |
| | | }else if(i==3){ |
| | | stringBuffer.append( i + "å«"); |
| | | }else if(i==4){ |
| | | stringBuffer.append( i + "é³"); |
| | | }else { |
| | | break; |
| | | } |
| | | |
| | | } |
| | | return stringBuffer.toString(); |
| | | } |
| | | |
| | | |
| | | |
| | | /** |
| | | * è·å车çç±»åä¿¡æ¯ |
| | | * |
| | |
| | | import java.security.SecureRandom; |
| | | import java.security.cert.CertificateException; |
| | | import java.security.cert.X509Certificate; |
| | | import java.util.Map; |
| | | |
| | | public class HttpsUtil { |
| | | |
| | | public static String get(String url,boolean ignoreSSL) { |
| | | return connection(url, "GET", null, null,ignoreSSL); |
| | | return connection(url, "GET", null, null,ignoreSSL,null); |
| | | } |
| | | |
| | | public static String post(String url, String data, String contentType, boolean ignoreSSL) { |
| | | return connection(url, "POST", data, contentType, ignoreSSL); |
| | | return connection(url, "POST", data, contentType, ignoreSSL,null); |
| | | } |
| | | public static String postJson(String url, String data) { |
| | | if(url.startsWith("https://")){ |
| | | return connection(url, "POST", data, "application/json", true); |
| | | return connection(url, "POST", data, "application/json", true,null); |
| | | }else{ |
| | | return connectionHttp(url, "POST", data, "application/json"); |
| | | return connectionHttp(url, "POST", data, "application/json",null); |
| | | } |
| | | } |
| | | public static String postJsonWithHeaders(String url, String data, Map<String,String> headers) { |
| | | if(url.startsWith("https://")){ |
| | | return connection(url, "POST", data, "application/json", true,headers); |
| | | }else{ |
| | | return connectionHttp(url, "POST", data, "application/json",headers); |
| | | } |
| | | } |
| | | |
| | | public static String connection(String url,String method,String data,String contentType,boolean ignoreSSL){ |
| | | public static String connection(String url,String method,String data,String contentType,boolean ignoreSSL, Map<String,String> headers){ |
| | | HttpsURLConnection connection = null; |
| | | try { |
| | | URL _url = new URL(url); |
| | |
| | | if(contentType != null){ |
| | | connection.setRequestProperty("Content-Type", contentType); |
| | | } |
| | | |
| | | if (headers!=null && headers.size()>0) { |
| | | for (String s : headers.keySet()) { |
| | | connection.setRequestProperty(s, headers.get(s)); |
| | | } |
| | | } |
| | | if(ignoreSSL){ |
| | | //ä¿¡ä»»ææsslè¯ä¹¦åä¸»æº |
| | | TrustManager[] trustManagers = {new HttpsTrustManager()}; |
| | |
| | | }); |
| | | } |
| | | |
| | | |
| | | connection.connect(); |
| | | |
| | | if(data != null){ |
| | |
| | | outputStream.write(data.getBytes("utf-8")); |
| | | outputStream.close(); |
| | | } |
| | | |
| | | int responseCode = connection.getResponseCode(); |
| | | if (responseCode == HttpsURLConnection.HTTP_OK) { |
| | | InputStream is = connection.getInputStream(); |
| | |
| | | } |
| | | return null; |
| | | } |
| | | public static String connectionHttp(String url,String method,String data,String contentType ){ |
| | | public static String connectionHttp(String url,String method,String data,String contentType, Map<String,String> headers){ |
| | | HttpURLConnection connection = null; |
| | | try { |
| | | URL _url = new URL(url); |
| | |
| | | if(contentType != null){ |
| | | connection.setRequestProperty("Content-Type", contentType); |
| | | } |
| | | |
| | | if (headers!=null && headers.size()>0) { |
| | | for (String s : headers.keySet()) { |
| | | connection.setRequestProperty(s, headers.get(s)); |
| | | } |
| | | } |
| | | connection.connect(); |
| | | |
| | | if(data != null){ |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.dao.admin.request; |
| | | |
| | | import com.doumee.core.annotation.excel.ExcelColumn; |
| | | import io.swagger.annotations.ApiModel; |
| | | import lombok.Data; |
| | | |
| | | /** |
| | | * ç»ç»ä¿¡æ¯å¯¼å
¥ |
| | | * @author æ±è¹è¹ |
| | | * @date 2024/01/16 10:03 |
| | | */ |
| | | @Data |
| | | @ApiModel("人åä¿¡æ¯å¯¼å
¥") |
| | | public class UserImport { |
| | | @ExcelColumn(name="ç¼ç ",value = "orgId",index = 1) |
| | | private String userId; |
| | | @ExcelColumn(name="åç§°",value = "name",index = 2) |
| | | private String name; |
| | | @ExcelColumn(name="ç»å½è´¦å·",value = "accountNo",index = 3) |
| | | private String accountNo; |
| | | @ExcelColumn(name="æ§å« 0ç· 1女",value = "sex",index = 4) |
| | | private String sex; |
| | | @ExcelColumn(name="ç¶æ 0åç¨ï¼1å¯ç¨",value = "status",index =5) |
| | | private String status; |
| | | @ExcelColumn(name="é®ç®±",value = "email",index = 6) |
| | | private String email; |
| | | @ExcelColumn(name="ææºå·",value = "phone",index = 7) |
| | | private String phone; |
| | | @ExcelColumn(name="å·¥å·",value = "code",index = 8) |
| | | private String code; |
| | | @ExcelColumn(name="é¨é¨ç¼ç éå,å¤ä¸ªè±æéå·éå¼",value = "orgIds",index = 9) |
| | | private String orgIds; |
| | | @ExcelColumn(name="ç¨æ·ç±»åç¼ç éå,å¤ä¸ªè±æéå·éå¼",value = "typeCodes",index = 10) |
| | | private String typeCodes; |
| | | @ExcelColumn(name="è§è²åç§°éå,å¤ä¸ªè±æéå·éå¼",value = "roleNames",index = 11) |
| | | private String roleNames; |
| | | @ExcelColumn(name="è§è²codeéå,å¤ä¸ªè±æéå·éå¼",value = "roleCodes",index = 12) |
| | | private String roleCodes; |
| | | @ExcelColumn(name="è§è²ç¼ç éå,å¤ä¸ªè±æéå·éå¼",value = "roleIds",index = 13) |
| | | private String roleIds; |
| | | } |
| | |
| | | @ExcelColumn(name="åºå") |
| | | private String areaName; |
| | | |
| | | @ApiModelProperty(value = "åºåç¼ç ") |
| | | @ExcelColumn(name="åºåç¼ç ") |
| | | private String areaCode; |
| | | @ApiModelProperty(value = "ç³»ç»çæ¬") |
| | | @ExcelColumn(name="ç³»ç»çæ¬") |
| | | private String sysVersion; |
| | |
| | | @ExcelColumn(name="ç份ç¼ç ") |
| | | private String provinceCode; |
| | | |
| | | @ApiModelProperty(value = "åºåç¼ç ") |
| | | @ExcelColumn(name="åºåç¼ç ") |
| | | private String areaCode; |
| | | |
| | | } |
| | |
| | | package com.doumee.dao.business.model; |
| | | |
| | | import com.baomidou.mybatisplus.annotation.TableField; |
| | | import com.doumee.core.annotation.excel.ExcelColumn; |
| | | import com.doumee.dao.business.dto.BaseQueryDto; |
| | | import io.swagger.annotations.ApiModel; |
| | |
| | | @ExcelColumn(name="crmæäº¤å¤æ³¨") |
| | | private String crmInfo; |
| | | |
| | | @ApiModelProperty(value = "åºå") |
| | | @ExcelColumn(name="åºå") |
| | | private String areaName; |
| | | |
| | | @ApiModelProperty(value = "åºåç¼ç ") |
| | | @ExcelColumn(name="åºåç¼ç ") |
| | | private String areaCode; |
| | | |
| | | @ApiModelProperty(value = "å§å") |
| | | @ExcelColumn(name="å§å") |
| | | private String name; |
| | | |
| | | @ApiModelProperty(value = "openid") |
| | | @TableField(exist = false) |
| | | private String openid; |
| | | |
| | | } |
| | |
| | | @ExcelColumn(name="ç¨æ·è§è²ç¼ç éåï¼å¤ä¸ªç¨è±è¯éå·éå¼") |
| | | private String roleIds; |
| | | |
| | | @ApiModelProperty(value = "ç¨æ·è§è²åç§°éåï¼å¤ä¸ªç¨è±è¯éå·éå¼") |
| | | @ExcelColumn(name="ç¨æ·è§è²åç§°éåï¼å¤ä¸ªç¨è±è¯éå·éå¼") |
| | | @ApiModelProperty(value = "ç¨æ·è§è²åç§°éå") |
| | | @ExcelColumn(name="ç¨æ·è§è²åç§°éå") |
| | | private String roleNames; |
| | | @ApiModelProperty(value = "ç¨æ·è§è²codeéåï¼å¤ä¸ªç¨è±è¯éå·éå¼") |
| | | @ExcelColumn(name="ç¨æ·è§è²codeéåï¼å¤ä¸ªç¨è±è¯éå·éå¼") |
| | | private String roleCodes; |
| | | @ApiModelProperty(value = "æ¯å¦å
å«ä¸çº§") |
| | | @TableField(exist = false) |
| | | private Boolean includeChild; |
| | |
| | | @ApiModelProperty(value = "ä¸çº§é¨é¨éå", example = "1") |
| | | @TableField(exist = false) |
| | | private List<ShopTreeVo> childList; |
| | | |
| | | @ApiModelProperty(value = "é¨é¨ç¼ç 级å«è·¯å¾", example = "1") |
| | | private String idPath; |
| | | @ApiModelProperty(value = "é¨é¨çº§å«è·¯å¾", example = "1") |
| | | private String namePath; |
| | | @ApiModelProperty(value = "é¨é¨çº§å«è·¯å¾", example = "1") |
| | | private Long parentId; |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.dao.web.reqeust; |
| | | |
| | | import com.doumee.core.annotation.excel.ExcelColumn; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | import java.math.BigDecimal; |
| | | |
| | | /** |
| | | * Created by IntelliJ IDEA. |
| | | * |
| | | * @Author : Rk |
| | | * @create 2024/7/11 17:19 |
| | | */ |
| | | @Data |
| | | @ApiModel("0å
å®å¶æ¥å请æ±ç±»") |
| | | public class FreeCustomizationDTO { |
| | | |
| | | @ApiModelProperty(value = "ç¨æ·ä¸»é®", hidden = true) |
| | | private long memberId; |
| | | |
| | | @ApiModelProperty(value = "ç¨æ·å§å") |
| | | private String name; |
| | | |
| | | @ApiModelProperty(value = "ææºå·") |
| | | private String phone; |
| | | |
| | | |
| | | @ApiModelProperty(value = "ç份") |
| | | private String provinceName; |
| | | |
| | | @ApiModelProperty(value = "åå¸") |
| | | private String cityName; |
| | | |
| | | @ApiModelProperty(value = "åºå") |
| | | private String areaName; |
| | | |
| | | @ApiModelProperty(value = "åå¸ç¼ç ") |
| | | private String cityCode; |
| | | |
| | | @ApiModelProperty(value = "ç份ç¼ç ") |
| | | private String provinceCode; |
| | | |
| | | @ApiModelProperty(value = "åºåç¼ç ") |
| | | private String areaCode; |
| | | |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.dao.web.reqeust; |
| | | |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | import java.math.BigDecimal; |
| | | |
| | | /** |
| | | * Created by IntelliJ IDEA. |
| | | * |
| | | * @Author : Rk |
| | | * @create 2024/7/11 17:19 |
| | | */ |
| | | @Data |
| | | @ApiModel("è£
修计ç®è¯·æ±ç±»") |
| | | public class RenovationCalculatorDTO { |
| | | |
| | | @ApiModelProperty(value = "ç¨æ·ä¸»é®", hidden = true) |
| | | private long memberId; |
| | | |
| | | @ApiModelProperty(value = "æ¿å±ç±»åï¼0ç²¾è£
1æ¯å¯") |
| | | private String houseStatus; |
| | | |
| | | @ApiModelProperty(value = "æ·åä¿¡æ¯ï¼0ä¸å®¤ä¸å
1两室ä¸å
2两室两å
3ä¸å®¤ä¸¤å
4å室两å
5äºå®¤ä¸¤å
å以ä¸") |
| | | private String houseType; |
| | | |
| | | @ApiModelProperty(value = "æ¿å±é¢ç§¯") |
| | | private String area; |
| | | |
| | | @ApiModelProperty(value = "è£
ä¿®é¢ç®ï¼ä¸å
ï¼") |
| | | private BigDecimal budget; |
| | | |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.dao.web.reqeust; |
| | | |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | /** |
| | | * Created by IntelliJ IDEA. |
| | | * |
| | | * @Author : Rk |
| | | * @create 2024/7/11 17:19 |
| | | */ |
| | | @Data |
| | | @ApiModel("æµè¯è£
ä¿®é£æ ¼è¯·æ±ç±»") |
| | | public class TestTrimStyleDTO { |
| | | |
| | | @ApiModelProperty(value = "ç¨æ·ä¸»é®", hidden = true) |
| | | private long memberId; |
| | | |
| | | @ApiModelProperty(value = "æ¿åæ·åï¼0ä¸å±
1两å±
2ä¸å±
3åå±
å以ä¸") |
| | | private String houseType; |
| | | |
| | | @ApiModelProperty(value = "ææºå·") |
| | | private String phone; |
| | | |
| | | @ApiModelProperty(value = "æ§å« 0ç· 1女") |
| | | private Integer sex; |
| | | |
| | | @ApiModelProperty(value = "年龿®µ 0-70å 1-80å 2-90å 3-00å") |
| | | private String ageInfo; |
| | | |
| | | @ApiModelProperty(value = "飿 ¼ï¼é£æ ¼æµè¯ç¨ï¼ 0-5") |
| | | private String styleInfo; |
| | | |
| | | @ApiModelProperty(value = "ç份") |
| | | private String provinceName; |
| | | |
| | | @ApiModelProperty(value = "åå¸") |
| | | private String cityName; |
| | | |
| | | @ApiModelProperty(value = "åå¸ç¼ç ") |
| | | private String cityCode; |
| | | |
| | | @ApiModelProperty(value = "ç份ç¼ç ") |
| | | private String provinceCode; |
| | | |
| | | |
| | | } |
| | |
| | | import com.doumee.core.model.PageData; |
| | | import com.doumee.core.model.PageWrap; |
| | | import com.doumee.dao.business.model.Customer; |
| | | import com.doumee.dao.business.model.CustomerLog; |
| | | import com.doumee.dao.web.reqeust.FreeCustomizationDTO; |
| | | import com.doumee.dao.web.reqeust.RenovationCalculatorDTO; |
| | | import com.doumee.dao.web.reqeust.TestTrimStyleDTO; |
| | | |
| | | import java.util.List; |
| | | |
| | | /** |
| | |
| | | * @return long |
| | | */ |
| | | long count(Customer customer); |
| | | |
| | | /** |
| | | * æ¿å±è£
修计ç®å¨ä¿¡æ¯åå¨ |
| | | * @param renovationCalculatorDTO |
| | | */ |
| | | CustomerLog saveRenovationCalculator(RenovationCalculatorDTO renovationCalculatorDTO); |
| | | |
| | | /** |
| | | * 0å
å®å¶ä¿¡æ¯ |
| | | * @param freeCustomizationDTO |
| | | */ |
| | | CustomerLog saveFreeCustomizationApply(FreeCustomizationDTO freeCustomizationDTO); |
| | | |
| | | /** |
| | | * æµè¯è£
ä¿®é£æ ¼ |
| | | * @param testTrimStyleDTO |
| | | */ |
| | | CustomerLog saveTestTrimStyle(TestTrimStyleDTO testTrimStyleDTO); |
| | | } |
| | |
| | | @Lazy |
| | | private SystemDictDataBiz systemDictDataBiz; |
| | | |
| | | @PostConstruct |
| | | public void clearImporting(){ |
| | | redisTemplate.delete(Constants.RedisKeys.IMPORTING_SHOP); |
| | | redisTemplate.delete(Constants.RedisKeys.IMPORTING_USERS); |
| | | } |
| | | @PostConstruct |
| | | public void initIamAppIdAndAppKey(){ |
| | | public void refreshZbomDictDataCache(){ |
| | | redisTemplate.opsForValue().set(Constants.RedisKeys.IAM_APPKEY,systemDictDataBiz.queryByCode(Constants.ZBOM,Constants.ZBOM_IAM_APPKEY).getCode()); |
| | | redisTemplate.opsForValue().set(Constants.RedisKeys.IAM_APPID,systemDictDataBiz.queryByCode(Constants.ZBOM,Constants.ZBOM_IAM_APPID).getCode()); |
| | | redisTemplate.opsForValue().set(Constants.RedisKeys.ZBOM_CRM_API_KEY,systemDictDataBiz.queryByCode(Constants.ZBOM,Constants.ZBOM_CRM_API_KEY).getCode()); |
| | | redisTemplate.opsForValue().set(Constants.RedisKeys.ZBOM_CRM_API_URL,systemDictDataBiz.queryByCode(Constants.ZBOM,Constants.ZBOM_CRM_API_URL).getCode()); |
| | | redisTemplate.opsForValue().set(Constants.RedisKeys.ZBOM_SMS_API_URL,systemDictDataBiz.queryByCode(Constants.ZBOM,Constants.ZBOM_SMS_API_URL).getCode()); |
| | | redisTemplate.opsForValue().set(Constants.RedisKeys.ZBOM_SMS_API_KEY,systemDictDataBiz.queryByCode(Constants.ZBOM,Constants.ZBOM_SMS_API_KEY).getCode()); |
| | | redisTemplate.opsForValue().set(Constants.RedisKeys.ZBOM_ZHONGTAI_API_URL,systemDictDataBiz.queryByCode(Constants.ZBOM,Constants.ZBOM_ZHONGTAI_API_URL).getCode()); |
| | | } |
| | | @PostConstruct |
| | | public void cacheShopTree(){ |
| | | // redisTemplate.opsForValue().set(Constants.RedisKeys.SHOP_TREE,shopService.shopTree(null)); |
| | | } |
| | | |
| | | |
| | | } |
| | |
| | | Member getMemberInfo(Long memberId); |
| | | |
| | | |
| | | /** |
| | | * ç¨æ·æ³¨é |
| | | * @param memberId |
| | | */ |
| | | void logOff(Long memberId); |
| | | } |
| | |
| | | import com.doumee.core.model.PageWrap; |
| | | import com.doumee.dao.business.model.Users; |
| | | import com.doumee.dao.web.response.AccountResponse; |
| | | import org.springframework.web.multipart.MultipartFile; |
| | | |
| | | import java.util.List; |
| | | |
| | |
| | | AccountResponse wxLogin(String code); |
| | | |
| | | void bindingOpenid(String code,Long userId); |
| | | |
| | | String importBatch(MultipartFile file); |
| | | } |
| | |
| | | import com.doumee.dao.business.CustomerLogMapper; |
| | | import com.doumee.dao.business.model.CustomerLog; |
| | | import com.doumee.dao.business.model.IamInterfaceLog; |
| | | import com.doumee.dao.business.model.InterfaceLog; |
| | | import com.doumee.service.business.CustomerLogService; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; |
| | |
| | | if (pageWrap.getModel().getQueryEndDate() != null) { |
| | | queryWrapper.lambda().le(CustomerLog::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getQueryEndDate())); |
| | | } |
| | | for(PageWrap.SortData sortData: pageWrap.getSorts()) { |
| | | if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) { |
| | | queryWrapper.orderByDesc(sortData.getProperty()); |
| | | } else { |
| | | queryWrapper.orderByAsc(sortData.getProperty()); |
| | | } |
| | | } |
| | | queryWrapper.lambda().orderByDesc(CustomerLog::getCreateDate); |
| | | return PageData.from(customerLogMapper.selectPage(page, queryWrapper)); |
| | | } |
| | | |
| | |
| | | package com.doumee.service.business.impl; |
| | | |
| | | import com.alibaba.druid.sql.visitor.functions.Concat; |
| | | import com.doumee.core.constants.ResponseStatus; |
| | | import com.doumee.core.exception.BusinessException; |
| | | import com.doumee.core.model.PageData; |
| | | import com.doumee.core.model.PageWrap; |
| | | import com.doumee.core.utils.Constants; |
| | | import com.doumee.core.utils.Utils; |
| | | import com.doumee.dao.business.CustomerLogMapper; |
| | | import com.doumee.dao.business.CustomerMapper; |
| | | import com.doumee.dao.business.MemberMapper; |
| | | import com.doumee.dao.business.model.Customer; |
| | | import com.doumee.dao.business.model.CustomerLog; |
| | | import com.doumee.dao.business.model.Member; |
| | | import com.doumee.dao.web.reqeust.FreeCustomizationDTO; |
| | | import com.doumee.dao.web.reqeust.RenovationCalculatorDTO; |
| | | import com.doumee.dao.web.reqeust.TestTrimStyleDTO; |
| | | import com.doumee.service.business.CustomerLogService; |
| | | import com.doumee.service.business.CustomerService; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import org.checkerframework.checker.units.qual.A; |
| | | import org.checkerframework.checker.units.qual.C; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.util.CollectionUtils; |
| | | import org.springframework.util.StringUtils; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Objects; |
| | | |
| | | /** |
| | | * 客æ·ä¿¡æ¯è¡¨Serviceå®ç° |
| | |
| | | |
| | | @Autowired |
| | | private CustomerMapper customerMapper; |
| | | |
| | | @Autowired |
| | | private CustomerLogMapper customerLogMapper; |
| | | |
| | | @Autowired |
| | | private MemberMapper memberMapper; |
| | | |
| | | |
| | | @Override |
| | | public Long create(Customer customer) { |
| | |
| | | return customerMapper.selectCount(wrapper); |
| | | } |
| | | |
| | | @Override |
| | | public CustomerLog saveRenovationCalculator(RenovationCalculatorDTO renovationCalculatorDTO){ |
| | | if(Objects.isNull(renovationCalculatorDTO) |
| | | || Objects.isNull(renovationCalculatorDTO.getMemberId()) |
| | | || Objects.isNull(renovationCalculatorDTO.getHouseStatus()) |
| | | || Objects.isNull(renovationCalculatorDTO.getHouseType()) |
| | | || Objects.isNull(renovationCalculatorDTO.getBudget()) |
| | | || StringUtils.isEmpty(renovationCalculatorDTO.getArea()) |
| | | ){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST); |
| | | } |
| | | Member member = memberMapper.selectById(renovationCalculatorDTO.getMemberId()); |
| | | if(Objects.isNull(member)){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"æªæ¥è¯¢å°ç¨æ·ä¿¡æ¯"); |
| | | } |
| | | if(StringUtils.isEmpty(member.getPhone())){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"æªææææºå·"); |
| | | } |
| | | Customer customer = customerMapper.selectOne(new QueryWrapper<Customer>().lambda().eq(Customer::getPhone,member.getPhone()).eq(Customer::getIsdeleted, Constants.ZERO).last("limit 1")); |
| | | if(Objects.isNull(customer)){ |
| | | customer = new Customer(); |
| | | customer.setIsdeleted(Constants.ZERO); |
| | | customer.setPhone(member.getPhone()); |
| | | customer.setCreateDate(new Date()); |
| | | } else{ |
| | | customer.setEditDate(new Date()); |
| | | } |
| | | customer.setOpenid(member.getOpenid()); |
| | | customer.setMemberId(member.getId()); |
| | | |
| | | customerMapper.insertOrUpdate(customer); |
| | | |
| | | |
| | | public void saveRenovationCalculator(){ |
| | | |
| | | |
| | | |
| | | //åå¨ customerLog æ°æ® |
| | | CustomerLog customerLog = new CustomerLog(); |
| | | customerLog.setCreateDate(new Date()); |
| | | customerLog.setIsdeleted(Constants.ZERO); |
| | | customerLog.setType(Constants.TWO); |
| | | customerLog.setCrmStatus(Constants.ZERO); |
| | | customerLog.setPhone(customer.getPhone()); |
| | | customerLog.setBudget(renovationCalculatorDTO.getBudget().multiply(new BigDecimal(10000)).toString()); |
| | | customerLog.setHouseStatus(renovationCalculatorDTO.getHouseStatus()); |
| | | customerLog.setArea(renovationCalculatorDTO.getArea()); |
| | | customerLog.setHouseType(renovationCalculatorDTO.getHouseType()); |
| | | customerLog.setCostomerId(customer.getId().toString()); |
| | | customerLogMapper.insert(customerLog); |
| | | customerLog.setOpenid(member.getOpenid()); |
| | | return customerLog; |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public CustomerLog saveFreeCustomizationApply(FreeCustomizationDTO freeCustomizationDTO){ |
| | | if(Objects.isNull(freeCustomizationDTO) |
| | | || Objects.isNull(freeCustomizationDTO.getMemberId()) |
| | | || StringUtils.isEmpty(freeCustomizationDTO.getName()) |
| | | || StringUtils.isEmpty(freeCustomizationDTO.getPhone()) |
| | | || StringUtils.isEmpty(freeCustomizationDTO.getCityCode()) |
| | | || StringUtils.isEmpty(freeCustomizationDTO.getCityName()) |
| | | || StringUtils.isEmpty(freeCustomizationDTO.getProvinceName()) |
| | | || StringUtils.isEmpty(freeCustomizationDTO.getProvinceCode()) |
| | | || StringUtils.isEmpty(freeCustomizationDTO.getAreaCode()) |
| | | || StringUtils.isEmpty(freeCustomizationDTO.getAreaName()) |
| | | ){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST); |
| | | } |
| | | Member member = memberMapper.selectById(freeCustomizationDTO.getMemberId()); |
| | | if(Objects.isNull(member)){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"æªæ¥è¯¢å°ç¨æ·ä¿¡æ¯"); |
| | | } |
| | | if(StringUtils.isEmpty(member.getPhone())){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"æªææææºå·"); |
| | | } |
| | | Customer customer = customerMapper.selectOne(new QueryWrapper<Customer>().lambda() |
| | | .eq(Customer::getPhone,freeCustomizationDTO.getPhone()).eq(Customer::getIsdeleted, Constants.ZERO).last("limit 1")); |
| | | if(Objects.isNull(customer)){ |
| | | customer = new Customer(); |
| | | customer.setPhone(freeCustomizationDTO.getPhone()); |
| | | customer.setCreateDate(new Date()); |
| | | customer.setIsdeleted(Constants.ZERO); |
| | | } else{ |
| | | customer.setEditDate(new Date()); |
| | | } |
| | | customer.setOpenid(member.getOpenid()); |
| | | customer.setMemberId(member.getId()); |
| | | customer.setName(freeCustomizationDTO.getName()); |
| | | |
| | | customer.setProName(freeCustomizationDTO.getProvinceName()); |
| | | customer.setCityName(freeCustomizationDTO.getCityName()); |
| | | customer.setAreaName(freeCustomizationDTO.getAreaName()); |
| | | customer.setProvinceCode(freeCustomizationDTO.getProvinceCode()); |
| | | customer.setCityCode(freeCustomizationDTO.getCityCode()); |
| | | customer.setAreaCode(freeCustomizationDTO.getAreaCode()); |
| | | customerMapper.insertOrUpdate(customer); |
| | | |
| | | //åå¨ customerLog æ°æ® |
| | | CustomerLog customerLog = new CustomerLog(); |
| | | customerLog.setCreateDate(new Date()); |
| | | customerLog.setIsdeleted(Constants.ZERO); |
| | | customerLog.setType(Constants.ONE); |
| | | customerLog.setCrmStatus(Constants.ZERO); |
| | | customerLog.setPhone(customer.getPhone()); |
| | | customerLog.setCostomerId(customer.getId().toString()); |
| | | |
| | | customerLog.setProvinceName(freeCustomizationDTO.getProvinceName()); |
| | | customerLog.setCityName(freeCustomizationDTO.getCityName()); |
| | | customerLog.setAreaCode(freeCustomizationDTO.getAreaName()); |
| | | customerLog.setProvicneCode(freeCustomizationDTO.getProvinceCode()); |
| | | customerLog.setCityCode(freeCustomizationDTO.getCityCode()); |
| | | customerLog.setAreaCode(freeCustomizationDTO.getAreaCode()); |
| | | customerLog.setName(freeCustomizationDTO.getName()); |
| | | customerLog.setPhone(freeCustomizationDTO.getPhone()); |
| | | customerLogMapper.insert(customerLog); |
| | | customerLog.setOpenid(member.getOpenid()); |
| | | return customerLog; |
| | | } |
| | | |
| | | @Override |
| | | public CustomerLog saveTestTrimStyle(TestTrimStyleDTO testTrimStyleDTO){ |
| | | if(Objects.isNull(testTrimStyleDTO) |
| | | || Objects.isNull(testTrimStyleDTO.getMemberId()) |
| | | |
| | | || StringUtils.isEmpty(testTrimStyleDTO.getStyleInfo()) |
| | | || StringUtils.isEmpty(testTrimStyleDTO.getAgeInfo()) |
| | | || Objects.isNull(testTrimStyleDTO.getSex()) |
| | | || StringUtils.isEmpty(testTrimStyleDTO.getHouseType()) |
| | | || StringUtils.isEmpty(testTrimStyleDTO.getAgeInfo()) |
| | | || StringUtils.isEmpty(testTrimStyleDTO.getPhone()) |
| | | |
| | | || StringUtils.isEmpty(testTrimStyleDTO.getCityCode()) |
| | | || StringUtils.isEmpty(testTrimStyleDTO.getCityName()) |
| | | || StringUtils.isEmpty(testTrimStyleDTO.getProvinceName()) |
| | | || StringUtils.isEmpty(testTrimStyleDTO.getProvinceCode()) |
| | | ){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST); |
| | | } |
| | | Member member = memberMapper.selectById(testTrimStyleDTO.getMemberId()); |
| | | if(Objects.isNull(member)){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"æªæ¥è¯¢å°ç¨æ·ä¿¡æ¯"); |
| | | } |
| | | if(StringUtils.isEmpty(member.getPhone())){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"æªææææºå·"); |
| | | } |
| | | Customer customer = customerMapper.selectOne(new QueryWrapper<Customer>().lambda() |
| | | .eq(Customer::getPhone,testTrimStyleDTO.getPhone()).eq(Customer::getIsdeleted, Constants.ZERO).last("limit 1")); |
| | | if(Objects.isNull(customer)){ |
| | | customer = new Customer(); |
| | | customer.setPhone(testTrimStyleDTO.getPhone()); |
| | | customer.setCreateDate(new Date()); |
| | | customer.setIsdeleted(Constants.ZERO); |
| | | } else{ |
| | | customer.setEditDate(new Date()); |
| | | } |
| | | customer.setOpenid(member.getOpenid()); |
| | | customer.setMemberId(member.getId()); |
| | | |
| | | customer.setProName(testTrimStyleDTO.getProvinceName()); |
| | | customer.setCityName(testTrimStyleDTO.getCityName()); |
| | | customer.setProvinceCode(testTrimStyleDTO.getProvinceCode()); |
| | | customer.setCityCode(testTrimStyleDTO.getCityCode()); |
| | | customerMapper.insertOrUpdate(customer); |
| | | |
| | | //åå¨ customerLog æ°æ® |
| | | CustomerLog customerLog = new CustomerLog(); |
| | | customerLog.setCreateDate(new Date()); |
| | | customerLog.setIsdeleted(Constants.ZERO); |
| | | customerLog.setType(Constants.ZERO); |
| | | customerLog.setCrmStatus(Constants.ZERO); |
| | | customerLog.setPhone(customer.getPhone()); |
| | | customerLog.setCostomerId(customer.getId().toString()); |
| | | |
| | | customerLog.setProvinceName(testTrimStyleDTO.getProvinceName()); |
| | | customerLog.setCityName(testTrimStyleDTO.getCityName()); |
| | | customerLog.setProvicneCode(testTrimStyleDTO.getProvinceCode()); |
| | | customerLog.setCityCode(testTrimStyleDTO.getCityCode()); |
| | | |
| | | customerLog.setAgeInfo(testTrimStyleDTO.getAgeInfo()); |
| | | customerLog.setHouseType(testTrimStyleDTO.getHouseType()); |
| | | customerLog.setStyleInfo(testTrimStyleDTO.getStyleInfo()); |
| | | customerLog.setSex(testTrimStyleDTO.getSex()); |
| | | customerLog.setAgeInfo(testTrimStyleDTO.getAgeInfo()); |
| | | customerLog.setPhone(testTrimStyleDTO.getPhone()); |
| | | customerLogMapper.insert(customerLog); |
| | | customerLog.setOpenid(member.getOpenid()); |
| | | return customerLog; |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | |
| | | import com.doumee.core.model.PageWrap; |
| | | import com.doumee.core.utils.Utils; |
| | | import com.doumee.dao.business.IamInterfaceLogMapper; |
| | | import com.doumee.dao.business.model.CustomerLog; |
| | | import com.doumee.dao.business.model.IamInterfaceLog; |
| | | import com.doumee.dao.business.model.InterfaceLog; |
| | | import com.doumee.service.business.IamInterfaceLogService; |
| | |
| | | if (pageWrap.getModel().getQueryEndDate() != null) { |
| | | queryWrapper.lambda().le(IamInterfaceLog::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getQueryEndDate())); |
| | | } |
| | | for(PageWrap.SortData sortData: pageWrap.getSorts()) { |
| | | if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) { |
| | | queryWrapper.orderByDesc(sortData.getProperty()); |
| | | } else { |
| | | queryWrapper.orderByAsc(sortData.getProperty()); |
| | | } |
| | | } |
| | | queryWrapper.lambda().orderByDesc(IamInterfaceLog::getCreateDate); |
| | | return PageData.from(iamInterfaceLogMapper.selectPage(page, queryWrapper)); |
| | | } |
| | | |
| | |
| | | import cn.binarywang.wx.miniapp.bean.WxMaPhoneNumberInfo; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.doumee.biz.system.SystemDictDataBiz; |
| | | import com.doumee.biz.zbom.ZbomZhongTaiService; |
| | | import com.doumee.biz.zbom.model.zhongtai.ZTBaseRequst; |
| | | import com.doumee.biz.zbom.model.zhongtai.ZTUserGetTokenRequest; |
| | | import com.doumee.biz.zbom.model.zhongtai.ZTUserInfoUpdateRequest; |
| | | import com.doumee.biz.zbom.model.zhongtai.response.ZTUserGetTokenResponse; |
| | | import com.doumee.config.Jwt.JwtPayLoad; |
| | | import com.doumee.config.Jwt.JwtTokenUtil; |
| | | import com.doumee.core.constants.ResponseStatus; |
| | |
| | | |
| | | @Autowired |
| | | private SystemDictDataBiz systemDictDataBiz; |
| | | |
| | | @Autowired |
| | | private ZbomZhongTaiService zbomZhongTaiService; |
| | | |
| | | @Autowired |
| | | private RedisTemplate<String,Object> redisTemplate; |
| | |
| | | |
| | | @Override |
| | | public void updMemberDetail(EditMemberRequest editMemberRequest){ |
| | | Member member = memberMapper.selectById(editMemberRequest.getMemberId()); |
| | | ZTUserInfoUpdateRequest ztUserInfoUpdateRequest = new ZTUserInfoUpdateRequest(); |
| | | ztUserInfoUpdateRequest.setOpenid(member.getOpenid()); |
| | | String appId = systemDictDataBiz.queryByCode(Constants.WX_MINI_CONFIG,Constants.WX_APPID_CUSTOMER).getCode(); |
| | | ztUserInfoUpdateRequest.setAppId(appId); |
| | | ztUserInfoUpdateRequest.setPlatform(Constants.PLATFORM); |
| | | ztUserInfoUpdateRequest.setPhone(editMemberRequest.getPhone()); |
| | | ztUserInfoUpdateRequest.setName(editMemberRequest.getName()); |
| | | ztUserInfoUpdateRequest.setAddress(editMemberRequest.getProvinceName()+editMemberRequest.getCityName()+editMemberRequest.getAreaName()); |
| | | ztUserInfoUpdateRequest.setFullAddress(editMemberRequest.getAddress()); |
| | | String prefix = systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE, Constants.RESOURCE_PATH).getCode() + |
| | | systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE, Constants.MEMBER).getCode(); |
| | | if(StringUtils.isNotBlank(editMemberRequest.getImgurl())){ |
| | | ztUserInfoUpdateRequest.setAvatarUrl(prefix + editMemberRequest.getImgurl()); |
| | | } |
| | | ztUserInfoUpdateRequest.setUptown(editMemberRequest.getDistrict()); |
| | | ztUserInfoUpdateRequest.setHouseArea(editMemberRequest.getHousearea().toString()); |
| | | ztUserInfoUpdateRequest.setHouseLayout(Constants.getHouseLayout(editMemberRequest.getHousetype())); |
| | | ZTUserGetTokenResponse userUpdateInfo = zbomZhongTaiService.userUpdateInfo(ztUserInfoUpdateRequest); |
| | | if(Objects.isNull(userUpdateInfo)){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"ä¸å°ä¿¡æ¯æ´æ°å¤±è´¥ï¼è¯·è系管çå"); |
| | | } |
| | | memberMapper.update(new UpdateWrapper<Member>() |
| | | .lambda() |
| | | .set(StringUtils.isNotBlank(editMemberRequest.getImgurl()),Member::getImgurl,editMemberRequest.getImgurl()) |
| | |
| | | .set(StringUtils.isNotBlank(editMemberRequest.getHousetype()),Member::getHousetype,editMemberRequest.getHousetype()) |
| | | .set(Objects.nonNull(editMemberRequest.getLatitude()),Member::getLatitude,editMemberRequest.getLatitude()) |
| | | .set(Objects.nonNull(editMemberRequest.getLongitude()),Member::getLongitude,editMemberRequest.getLongitude()) |
| | | .set(Member::getToken,userUpdateInfo.getToken()) |
| | | .eq(Member::getId,editMemberRequest.getMemberId())); |
| | | |
| | | } |
| | | |
| | | @Override |
| | |
| | | return member; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * æ´æ°ä¸å°tokenä¿¡æ¯ |
| | | * @param member |
| | | */ |
| | | public void updUserZTToken(Member member){ |
| | | //å¦ææ æææ/å·²è¿æ éæ°è·å |
| | | if(Objects.isNull(member.getTokenDate()) || member.getTokenDate().getTime()<=System.currentTimeMillis() ){ |
| | | ZTUserGetTokenRequest param = new ZTUserGetTokenRequest(); |
| | | //æ¥è¯¢APPID |
| | | String appId = systemDictDataBiz.queryByCode(Constants.WX_MINI_CONFIG,Constants.WX_APPID_CUSTOMER).getCode(); |
| | | param.setAppId(appId); |
| | | param.setOpenId(member.getOpenid()); |
| | | ZTUserGetTokenResponse ztUserGetTokenResponse = zbomZhongTaiService.getUserToken(param); |
| | | if(Objects.nonNull(ztUserGetTokenResponse)){ |
| | | member.setToken(ztUserGetTokenResponse.getToken()); |
| | | //TODO ææ è¿ææ¥æ |
| | | memberMapper.update(new UpdateWrapper<Member>().lambda().set(Member::getToken,ztUserGetTokenResponse.getToken()) |
| | | .eq(Member::getId,member.getId())); |
| | | }else{ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"ä¸å°TOKENè·å失败ï¼è¯·è系管çå"); |
| | | } |
| | | }; |
| | | } |
| | | |
| | | |
| | | |
| | | @Override |
| | | public void logOff(Long memberId){ |
| | | Member member = memberMapper.selectById(memberId); |
| | | if(Objects.isNull(member)){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY); |
| | | } |
| | | if(StringUtils.isBlank(member.getPhone())){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"ç¨æ·å·²æ³¨é"); |
| | | } |
| | | //æ ¡éªç¨æ·tokenä¿¡æ¯ |
| | | this.updUserZTToken(member); |
| | | //è°èµ·ä¸å°æ³¨éæ¥å£ |
| | | ZTBaseRequst ztBaseRequst = new ZTBaseRequst(); |
| | | ztBaseRequst.setUserType(Constants.CUSTOMER); |
| | | ztBaseRequst.setOpenid(member.getOpenid()); |
| | | ztBaseRequst.setToken(member.getToken()); |
| | | Boolean logoutFlag = zbomZhongTaiService.userLogout(ztBaseRequst); |
| | | if(logoutFlag){ |
| | | memberMapper.update(new UpdateWrapper<Member>().lambda() |
| | | .set(Member::getPhone,null) |
| | | .set(Member::getEditDate,new Date()) |
| | | .eq(Member::getId,member.getId()) |
| | | ); |
| | | return; |
| | | } |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"ä¸å°æ³¨é失败ï¼è¯·è系管çå"); |
| | | } |
| | | |
| | | |
| | | } |
| | |
| | | s.setIdPath(s.getId()+"/"); |
| | | shopMapper.updateById(s); |
| | | }else{ |
| | | String idPath = StringUtils.defaultString(parent.getIdPath(),"")+ shop.getId()+"/"; |
| | | String namePath =StringUtils.defaultString(parent.getNamePath(),"")+"/"+shop.getName(); |
| | | s.setParentId(parent.getId()); |
| | | s.setNamePath(parent.getNamePath()+"/"+s.getName()); |
| | | s.setIdPath(parent.getIdPath()+s.getId()+"/"); |
| | | shopMapper.updateById(s); |
| | | s.setNamePath(namePath); |
| | | s.setIdPath(idPath); |
| | | if(!(Constants.equalsLong(parent.getId(),shop.getParentId()) |
| | | && StringUtils.equals(idPath,shop.getIdPath()) |
| | | &&StringUtils.equals(namePath,shop.getNamePath())) ){ |
| | | shopMapper.updateById(s); |
| | | } |
| | | } |
| | | if(shop.getChildList()!=null && shop.getChildList().size()>0){ |
| | | updateNamePath(s,shop.getChildList()); |
| | |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.doumee.biz.system.SystemDictDataBiz; |
| | | import com.doumee.biz.zbom.ZbomSMSService; |
| | | import com.doumee.core.constants.ResponseStatus; |
| | | import com.doumee.core.exception.BusinessException; |
| | | import com.doumee.core.model.LoginUserInfo; |
| | |
| | | |
| | | @Autowired |
| | | private SystemDictDataBiz systemDictDataBiz; |
| | | |
| | | @Autowired |
| | | private ZbomSMSService zbomSMSService; |
| | | |
| | | |
| | | public static void isCaptcheValide(SmsEmailMapper smsEmailMapper, String phone, String captche) { |
| | |
| | | String code = Constants.getRandom6Num(); |
| | | |
| | | String content = //systemDictDataBiz.queryByCode(Constants.SMS,Constants.SMS_COMNAME).getCode()+ |
| | | |
| | | "éªè¯ç 为ï¼"+code+"ï¼æ¤éªè¯ç ææä¸º3åéãè¯·å¿æ³é²"; |
| | | |
| | | |
| | | zbomSMSService.sendMessage(content,smsEmail.getPhone()); |
| | | smsEmail.setRemark(code); |
| | | smsEmail.setIsdeleted(Constants.ZERO); |
| | | smsEmail.setCreateDate(new Date()); |
| | |
| | | |
| | | import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult; |
| | | import com.doumee.biz.system.SystemDictDataBiz; |
| | | import com.doumee.biz.zbom.model.IamUserRoleModel; |
| | | import com.doumee.biz.zbom.model.IamUserTypeModel; |
| | | import com.doumee.config.Jwt.JwtPayLoad; |
| | | import com.doumee.config.Jwt.JwtTokenUtil; |
| | | import com.doumee.core.annotation.excel.ExcelImporter; |
| | | import com.doumee.core.constants.ResponseStatus; |
| | | import com.doumee.core.exception.BusinessException; |
| | | import com.doumee.core.model.LoginUserInfo; |
| | | import com.doumee.core.model.PageData; |
| | | import com.doumee.core.model.PageWrap; |
| | | import com.doumee.core.utils.Constants; |
| | | import com.doumee.core.utils.Utils; |
| | | import com.doumee.dao.admin.request.ShopImport; |
| | | import com.doumee.dao.admin.request.UserImport; |
| | | import com.doumee.dao.business.ShopMapper; |
| | | import com.doumee.core.wx.WxMiniConfig; |
| | | import com.doumee.dao.business.SmsEmailMapper; |
| | | import com.doumee.dao.business.UsersMapper; |
| | | import com.doumee.dao.business.model.Multifile; |
| | | import com.doumee.dao.business.model.News; |
| | | import com.doumee.dao.business.model.Shop; |
| | | import com.doumee.dao.business.model.Member; |
| | | import com.doumee.dao.business.model.Users; |
| | | import com.doumee.dao.business.model.*; |
| | | import com.doumee.dao.system.model.SystemUser; |
| | | import com.doumee.dao.web.response.AccountResponse; |
| | | import com.doumee.service.business.UsersService; |
| | |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import me.chanjar.weixin.common.error.WxErrorException; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.apache.shiro.SecurityUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.data.redis.core.RedisTemplate; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | import org.springframework.util.CollectionUtils; |
| | | import org.springframework.web.multipart.MultipartFile; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Objects; |
| | | import java.util.concurrent.Callable; |
| | | import java.util.concurrent.ExecutorService; |
| | | import java.util.concurrent.Executors; |
| | | |
| | | /** |
| | | * å工信æ¯è¡¨Serviceå®ç° |
| | |
| | | @Service |
| | | public class UsersServiceImpl implements UsersService { |
| | | |
| | | |
| | | ExecutorService executor = Executors.newFixedThreadPool(1); |
| | | @Autowired |
| | | private RedisTemplate<String, Object> redisTemplate; |
| | | @Autowired |
| | | private UsersMapper usersMapper; |
| | | @Autowired |
| | | private ShopMapper shopMapper; |
| | | @Autowired |
| | | private SmsEmailMapper smsEmailMapper; |
| | | @Autowired |
| | | private SystemDictDataBiz systemDictDataBiz; |
| | | |
| | |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | @Override |
| | | public AccountResponse phoneLogin(String phone,String code){ |
| | | if(StringUtils.isEmpty(phone)||StringUtils.isEmpty(code)){ |
| | |
| | | if(!StringUtils.equals(users.getStatus(),Constants.ZERO+"")){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"å½åè´¦æ·å·²åç¨ï¼è¯·è系管çå"); |
| | | } |
| | | //TODO éªè¯çä¿¡ä¿¡æ¯ |
| | | if(!StringUtils.equals(code,"123456")){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"éªè¯ç é误"); |
| | | //éªè¯çä¿¡ |
| | | SmsEmail model = smsEmailMapper.selectOne(new QueryWrapper<SmsEmail>().lambda() |
| | | .eq(SmsEmail::getType, Constants.ZERO) |
| | | .eq(SmsEmail::getPhone, phone) |
| | | .eq(SmsEmail::getRemark, code) |
| | | .eq(SmsEmail::getIsdeleted, Constants.ZERO) |
| | | ); |
| | | if(model == null){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对ä¸èµ·ï¼éªè¯ç 䏿£ç¡®ï¼è¯·éæ°åéåè¯ï¼"); |
| | | } |
| | | if(!Constants.equalsInteger(model.getStatus(),Constants.ZERO)){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对ä¸èµ·ï¼éªè¯ç 已失æï¼è¯·éæ°åéåè¯ï¼"); |
| | | } |
| | | model.setStatus(Constants.ONE); |
| | | model.setEditDate(new Date()); |
| | | if(model.getCreateDate() !=null && |
| | | System.currentTimeMillis() - model.getCreateDate().getTime() > 3*60*1000){ |
| | | smsEmailMapper.updateById(model); |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对ä¸èµ·ï¼éªè¯ç 已失æï¼è¯·éæ°åéåè¯~"); |
| | | } |
| | | smsEmailMapper.updateById(model); |
| | | //å建token |
| | | JwtPayLoad payLoad = new JwtPayLoad(users.getId(),Constants.ONE); |
| | | String token = JwtTokenUtil.generateToken(payLoad); |
| | |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = {BusinessException.class,Exception.class}) |
| | | public String importBatch(MultipartFile file){ |
| | | Boolean importing = (Boolean) redisTemplate.opsForValue().get(Constants.RedisKeys.IMPORTING_USERS); |
| | | if(importing!=null && importing){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对ä¸èµ·ï¼å·²åå¨å¯¼å
¥æè
ä¸ä¸çº§éç½®ä»»å¡æ£å¨æ§è¡ä¸ï¼è¯·ç¨ååè¯ï¼"); |
| | | } |
| | | redisTemplate.opsForValue().set(Constants.RedisKeys.IMPORTING_USERS,true); |
| | | try { |
| | | LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); |
| | | ExcelImporter ie = null; |
| | | List<UserImport> dataList =null; |
| | | try { |
| | | ie = new ExcelImporter(file,0,0); |
| | | dataList = ie.getDataList(UserImport.class,null); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | if(dataList == null || dataList.size() ==0){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对ä¸èµ·ï¼å½å
¥æ°æ®ä¸ºç©ºï¼"); |
| | | } |
| | | Date date =new Date(); |
| | | List<UserImport> finalDataList = dataList; |
| | | Callable<String> task = () -> { |
| | | dealUserDataBiz(finalDataList,date,loginUserInfo); |
| | | return "弿¥ä»»å¡å®æ"; |
| | | }; |
| | | executor.submit(task); |
| | | |
| | | return "导å
¥æå"; |
| | | }catch (BusinessException e){ |
| | | throw e; |
| | | }catch (Exception e){ |
| | | throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"ä¿¡æ¯å¯¼å
¥å¤±è´¥ï¼è¯·ç¨åéè¯"); |
| | | } |
| | | } |
| | | |
| | | private void dealUserDataBiz(List<UserImport> dataList, Date date, LoginUserInfo loginUserInfo) { |
| | | try { |
| | | List<Users> list = usersMapper.selectJoinList(Users.class,new MPJLambdaWrapper<Users>() |
| | | .selectAll(Users.class) |
| | | ); |
| | | List<Users> insertList = new ArrayList<>(); |
| | | List<Users> updateList = new ArrayList<>(); |
| | | for(int i=0;i<dataList.size();i++){ |
| | | UserImport model = dataList.get(i); |
| | | if(StringUtils.isBlank(model.getName()) |
| | | &&StringUtils.isBlank(model.getCode()) ){ |
| | | continue; |
| | | } |
| | | Users user = checkModelParam(model,insertList,updateList,i,loginUserInfo,list,date); |
| | | } |
| | | if(insertList .size() >0){ |
| | | int temp = 0; |
| | | while(temp < insertList.size()){ |
| | | int index; |
| | | if(temp + 500 <= insertList.size()){ |
| | | index = temp+500; |
| | | }else{ |
| | | index = insertList.size(); |
| | | } |
| | | usersMapper.insert(insertList.subList(temp,index)); |
| | | temp = index; |
| | | } |
| | | } |
| | | if(updateList .size() >0){ |
| | | for(Users s : updateList){ |
| | | //éåæ´æ°æ°æ® |
| | | usersMapper.updateById(s); |
| | | } |
| | | } |
| | | }catch (BusinessException e){ |
| | | throw e; |
| | | }catch (Exception e){ |
| | | throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"ä¿¡æ¯å¯¼å
¥å¤±è´¥ï¼è¯·ç¨åéè¯"); |
| | | }finally { |
| | | executor.shutdown(); |
| | | redisTemplate.delete(Constants.RedisKeys.IMPORTING_USERS); |
| | | } |
| | | } |
| | | private Users getUserByUserID(String userId, List<Users> list) { |
| | | if(list ==null || list.size() ==0){ |
| | | return null; |
| | | } |
| | | for(Users s :list){ |
| | | if(StringUtils.equals(s.getIamId(),userId)){ |
| | | return s; |
| | | } |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | private Users checkModelParam(UserImport model, List<Users> insertList, List<Users> updateList, int index, LoginUserInfo loginUserInfo, List<Users> list, Date date) { |
| | | |
| | | if(StringUtils.isBlank(model.getUserId())){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对ä¸èµ·ï¼ç¬¬"+(index+3)+"è¡ãç¼ç ãä¿¡æ¯ä¸å®æ´ï¼è¯·æ£æ¥è¡¨æ ¼å
容ï¼"); |
| | | } |
| | | if(StringUtils.isBlank(model.getName())){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对ä¸èµ·ï¼ç¬¬"+(index+3)+"è¡ãå§åãä¿¡æ¯ä¸å®æ´ï¼è¯·æ£æ¥è¡¨æ ¼å
容ï¼"); |
| | | } |
| | | if(StringUtils.isBlank(model.getAccountNo())){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对ä¸èµ·ï¼ç¬¬"+(index+3)+"è¡ãç»å½è´¦å·ãä¿¡æ¯ä¸å®æ´ï¼è¯·æ£æ¥è¡¨æ ¼å
容ï¼"); |
| | | } |
| | | if(StringUtils.isBlank(model.getPhone())){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对ä¸èµ·ï¼ç¬¬"+(index+3)+"è¡ãææºå·ãä¿¡æ¯ä¸å®æ´ï¼è¯·æ£æ¥è¡¨æ ¼å
容ï¼"); |
| | | } |
| | | Users users = getUserByUserID(model.getUserId(),list); |
| | | if(users == null){ |
| | | users = new Users(); |
| | | users.setCreator(loginUserInfo.getId()); |
| | | users.setCreateDate(date); |
| | | initUsersInfo(users,model,date,loginUserInfo); |
| | | insertList.add(users); |
| | | }else { |
| | | initUsersInfo(users,model,date,loginUserInfo); |
| | | updateList.add(users); |
| | | } |
| | | return users; |
| | | } |
| | | |
| | | private void initUsersInfo(Users users, UserImport model,Date date,LoginUserInfo loginUserInfo ){ |
| | | users.setEditor(loginUserInfo.getId()); |
| | | users.setEditDate(date); |
| | | users.setName(model.getName()); |
| | | users.setIamUsername(model.getAccountNo()); |
| | | users.setPhone(model.getPhone()); |
| | | users.setStatus(model.getStatus()); |
| | | users.setEmail(model.getEmail()); |
| | | users.setIamId(model.getUserId()); |
| | | users.setCode(model.getCode()); |
| | | users.setSex(model.getSex()); |
| | | users.setStatus(model.getStatus()); |
| | | users.setIsdeleted(Constants.ZERO); |
| | | users.setRoleIds(""); |
| | | users.setRoleNames(""); |
| | | users.setRoleCodes(""); |
| | | users.setUserTypes(""); |
| | | users.setIamOrgId(""); |
| | | getDepartidByParam(users,model.getOrgIds()); |
| | | setRolesInfo(users,model); |
| | | getUserTypesByParam(users,model.getTypeCodes()); |
| | | } |
| | | |
| | | private String getUserTypesByParam(Users users,String typeCodes) { |
| | | if( typeCodes !=null){ |
| | | String[] codes =typeCodes.split(","); |
| | | for(String t : codes){ |
| | | if(StringUtils.isBlank(users.getUserTypes())){ |
| | | users.setUserTypes(""); |
| | | } |
| | | users.setUserTypes(users.getUserTypes()+"["+t+"];"); |
| | | } |
| | | } |
| | | return users.getUserTypes(); |
| | | } |
| | | |
| | | private void setRolesInfo(Users users, UserImport model) { |
| | | if( model.getRoleCodes() !=null){ |
| | | String[] codes = model.getRoleCodes().split(","); |
| | | for(String t : codes){ |
| | | if(StringUtils.isBlank(users.getRoleCodes())){ |
| | | users.setRoleCodes(""); |
| | | } |
| | | users.setRoleCodes(users.getRoleCodes()+"["+t+"];"); |
| | | } |
| | | } |
| | | if( model.getRoleIds() !=null){ |
| | | String[] codes = model.getRoleIds().split(","); |
| | | for(String t : codes){ |
| | | if(StringUtils.isBlank(users.getRoleIds())){ |
| | | users.setRoleIds(""); |
| | | } |
| | | users.setRoleIds(users.getRoleIds()+"["+t+"];"); |
| | | } |
| | | } |
| | | if( model.getRoleNames() !=null){ |
| | | String[] codes = model.getRoleNames().split(","); |
| | | for(String t : codes){ |
| | | if(StringUtils.isBlank(users.getRoleNames())){ |
| | | users.setRoleNames(""); |
| | | } |
| | | users.setRoleNames(users.getRoleNames()+"["+t+"];"); |
| | | } |
| | | } |
| | | } |
| | | |
| | | private Shop getDepartidByParam(Users users , String orgIds) { |
| | | if( orgIds ==null){ |
| | | return null; |
| | | } |
| | | String[] orgArray = orgIds.split(","); |
| | | if( orgArray !=null && orgArray.length>0){ |
| | | for(String t : orgArray){ |
| | | Shop shop = shopMapper.selectOne(new QueryWrapper<Shop>().lambda() |
| | | .eq(Shop::getOrgId,t) |
| | | .last("limit 1")); |
| | | if(shop!=null) { |
| | | users.setIamOrgId(t); |
| | | users.setDepartmentId(shop.getId()); |
| | | return shop; |
| | | } |
| | | } |
| | | } |
| | | users.setIamOrgId(orgIds+"--å°æªåæ¥å°ç»ç»"); |
| | | |
| | | return null; |
| | | } |
| | | |
| | | } |
| | | |
| | |
| | | package com.doumee.api.web; |
| | | |
| | | import com.doumee.biz.zbom.ZbomCRMService; |
| | | import com.doumee.config.annotation.LoginRequired; |
| | | import com.doumee.core.annotation.trace.Trace; |
| | | import com.doumee.core.model.ApiResponse; |
| | | import com.doumee.dao.business.model.CustomerLog; |
| | | import com.doumee.dao.business.model.Member; |
| | | import com.doumee.dao.web.reqeust.EditMemberRequest; |
| | | import com.doumee.dao.web.reqeust.WxPhoneRequest; |
| | | import com.doumee.dao.web.reqeust.*; |
| | | import com.doumee.dao.web.response.AccountResponse; |
| | | import com.doumee.dao.web.response.BjParamConfigResponse; |
| | | import com.doumee.service.business.BjParamService; |
| | |
| | | import io.swagger.annotations.ApiImplicitParams; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.checkerframework.checker.units.qual.A; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | |
| | | @Autowired |
| | | private CustomerService customerService; |
| | | |
| | | @Autowired |
| | | private ZbomCRMService zbomCRMService; |
| | | |
| | | @ApiOperation(value = "客æ·ç«¯å°ç¨åºç»é", notes = "客æ·ç«¯å°ç¨åº") |
| | | @GetMapping("/wxLoginCustomer") |
| | |
| | | } |
| | | |
| | | |
| | | @LoginRequired |
| | | @ApiOperation(value = "è£
修计ç®å¨ä¿¡æ¯åå¨", notes = "客æ·ç«¯å°ç¨åº") |
| | | @PostMapping("/saveRenovationCalculator") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "ç¨æ·tokenå¼", required = true) |
| | | }) |
| | | public ApiResponse saveRenovationCalculator(@RequestBody RenovationCalculatorDTO renovationCalculatorDTO) { |
| | | renovationCalculatorDTO.setMemberId(getMemberId()); |
| | | CustomerLog customerLog =customerService.saveRenovationCalculator(renovationCalculatorDTO); |
| | | zbomCRMService.dealCustomerLogData(customerLog); |
| | | return ApiResponse.success("æä½æå"); |
| | | } |
| | | |
| | | |
| | | @LoginRequired |
| | | @ApiOperation(value = "0å
å®å¶ä¿¡æ¯", notes = "客æ·ç«¯å°ç¨åº") |
| | | @PostMapping("/saveFreeCustomizationApply") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "ç¨æ·tokenå¼", required = true) |
| | | }) |
| | | public ApiResponse saveFreeCustomizationApply(@RequestBody FreeCustomizationDTO freeCustomizationDTO) { |
| | | freeCustomizationDTO.setMemberId(getMemberId()); |
| | | CustomerLog customerLog = customerService.saveFreeCustomizationApply(freeCustomizationDTO); |
| | | zbomCRMService.dealCustomerLogData(customerLog); |
| | | return ApiResponse.success("æä½æå"); |
| | | } |
| | | |
| | | @LoginRequired |
| | | @ApiOperation(value = "æµè¯è£
ä¿®é£æ ¼", notes = "客æ·ç«¯å°ç¨åº") |
| | | @PostMapping("/saveTestTrimStyle") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "ç¨æ·tokenå¼", required = true) |
| | | }) |
| | | public ApiResponse saveTestTrimStyle(@RequestBody TestTrimStyleDTO testTrimStyleDTO) { |
| | | testTrimStyleDTO.setMemberId(getMemberId()); |
| | | CustomerLog customerLog = customerService.saveTestTrimStyle(testTrimStyleDTO); |
| | | zbomCRMService.dealCustomerLogData(customerLog); |
| | | return ApiResponse.success("æä½æå"); |
| | | } |
| | | |
| | | @LoginRequired |
| | | @ApiOperation(value = "ç¨æ·æ³¨é", notes = "客æ·ç«¯å°ç¨åº") |
| | | @GetMapping("/logOff") |
| | | public ApiResponse logOff() { |
| | | memberService.logOff(getMemberId()); |
| | | return ApiResponse.success("æä½æå"); |
| | | } |
| | | |
| | | |
| | | } |
| | |
| | | import com.doumee.config.annotation.UserLoginRequired; |
| | | import com.doumee.core.annotation.trace.Trace; |
| | | import com.doumee.core.model.ApiResponse; |
| | | import com.doumee.dao.business.model.SmsEmail; |
| | | import com.doumee.dao.web.response.AccountResponse; |
| | | import com.doumee.service.business.MemberService; |
| | | import com.doumee.service.business.SmsEmailService; |
| | | import com.doumee.service.business.UsersService; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiImplicitParam; |
| | | import io.swagger.annotations.ApiImplicitParams; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.checkerframework.checker.units.qual.A; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.GetMapping; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | |
| | | @Autowired |
| | | public UsersService usersService; |
| | | |
| | | @Autowired |
| | | public SmsEmailService smsEmailService; |
| | | |
| | | |
| | | @ApiOperation(value = "å°ç¨åºç»é", notes = "å工端å°ç¨åº") |
| | | @GetMapping("/loginByWx") |
| | |
| | | } |
| | | |
| | | |
| | | @ApiOperation(value = "åéçä¿¡éªè¯ç ", notes = "å工端å°ç¨åº") |
| | | @GetMapping("/sendSms") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(paramType = "query", dataType = "String", name = "phone", value = "ææºå·", required = true), |
| | | }) |
| | | public ApiResponse sendSms(@RequestParam String phone) { |
| | | SmsEmail smsEmail = new SmsEmail(); |
| | | smsEmail.setPhone(phone); |
| | | smsEmailService.sendSms(smsEmail); |
| | | return ApiResponse.success("åéæå"); |
| | | } |
| | | |
| | | |
| | | |
| | | @ApiOperation(value = "ææºå·éªè¯ç ç»é", notes = "å工端å°ç¨åº") |
| | | @GetMapping("/loginByPhone") |
| | | @ApiImplicitParams({ |