| | |
| | | trim: true |
| | | }) |
| | | } |
| | | // 导åºExcel |
| | | export function exportExcel (data) { |
| | | return request.post('/business/orders/exportExcel', data, { |
| | | download: true, |
| | | trim: true |
| | | }) |
| | | } |
| | | |
| | | // å建 |
| | | export function create (data) { |
| | | return request.post('/business/orders/create', data) |
| | | } |
| | | export function cancel (id) { |
| | | return request.get(`/business/orders/cancel?id=${id}`) |
| | | } |
| | | |
| | | // ä¿®æ¹ |
| | |
| | | export function deleteById (id) { |
| | | return request.get(`/business/orders/delete/${id}`) |
| | | } |
| | | // å é¤ |
| | | export function getById (id) { |
| | | return request.get(`/business/orders/${id}`) |
| | | } |
| | | |
| | | // æ¹éå é¤ |
| | | export function deleteByIdInBatch (ids) { |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <GlobalWindow |
| | | :title="title" |
| | | :visible.sync="visible" |
| | | :withFooter="false" |
| | | width="calc(100% - 250px)" |
| | | :confirm-working="isWorking" |
| | | @close="close" |
| | | @confirm="confirm"> |
| | | <div class="main"> |
| | | <div class="renzheng" > |
| | | <div class="info" > |
| | | <span class="m10">订åä¿¡æ¯</span> |
| | | <el-tag type="primary" class="ml10 tag2" v-if="info.status == 0||info.status == 1||info.status == 3">{{ info.statusName }}</el-tag> |
| | | <el-tag type="success" class="ml10 tag2" v-if="info.status == 4">{{ info.statusName }}</el-tag> |
| | | <el-tag type="danger" class="ml10 tag2" v-if="info.status == 99">{{ info.statusName }}</el-tag> |
| | | </div> |
| | | <div class="detail" > |
| | | <div class="line"> |
| | | <div class="cont"><span class="label"> 订åå·ï¼</span> <span class="txt">{{info.code }}</span></div> |
| | | <div class="cont"> <span class="label"> ä¸åæ¶é´ï¼</span> <span class="txt">{{info.createTime }}</span></div> |
| | | <div class="cont"><span class="label"> æ¥åæ¶é´ï¼</span> <span class="txt">{{info.acceptTime || '' }}</span></div> |
| | | </div> |
| | | <div class="line"> |
| | | <div class="cont"><span class="label">å¼å§æ¶é´ï¼</span> <span class="txt">{{info.workStartTime || '' }}</span></div> |
| | | <div class="cont" style="flex: 2"><span class="label">宿æ¶é´ï¼</span><span class="txt">{{info.finishTime || '' }}</span></div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="renzheng" > |
| | | <div class="info" > |
| | | <span class="m10">æ¯ä»ä¿¡æ¯</span> |
| | | </div> |
| | | <div class="detail" > |
| | | <div class="line"> |
| | | <div class="cont"><span class="label"> å®ä»éé¢ï¼</span> <span class="txt yellowbtn">{{((info.payAccount||0)/100).toFixed(2) }}å
</span></div> |
| | | <div class="cont"><span class="label">平尿ç»è´¹ï¼</span> <span class="txt yellowbtn">{{(((info.payAccount||0) - (info.receiveAccount||0))/100).toFixed(2) }}å
</span></div> |
| | | <div class="cont"><span class="label">æ¥åæ¹æ¶å°éé¢ï¼</span> <span class="txt yellowbtn">{{((info.receiveAccount||0)/100).toFixed(2) }}å
</span></div> |
| | | </div> |
| | | <div class="line"> |
| | | <div class="cont"><span class="label">æ¯ä»æ¶é´ï¼</span> <span class="txt">{{info.payTime || '' }}</span></div> |
| | | <div class="cont"><span class="label">æ¯ä»æ¹å¼ï¼</span><span class="txt">{{info.payMethod==0?'微信æ¯ä»':'å
¶ä»' }}</span></div> |
| | | <div class="cont"><span class="label">交æåå·ï¼</span><span class="txt">{{info.wxExternalNo || '' }}</span></div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="renzheng" > |
| | | <div class="info" > |
| | | <span class="m10">éæ±ä¿¡æ¯</span> |
| | | </div> |
| | | <div class="detail" v-if="info.type==0"> |
| | | <div class="line"> |
| | | <div class="cont"><span class="label"> 订åç±»åï¼</span> <span class="txt">{{(info.type==0?'ç¨å·¥å':(info.type==1?'è´§è¿å':'订åå')) }}</span></div> |
| | | <div class="cont"><span class="label">å·¥ç§ï¼</span> |
| | | <span class="txt" v-if="info.type==0">{{(info.workType==0?'éæå·¥':(info.workType==1?'忣工':'å
è£
å·¥')) }}</span> |
| | | <span v-else>-</span> |
| | | </div> |
| | | <div class="cont"><span class="label">éæåç§ï¼</span> <span class="txt">{{info.categoryName || ''}}</span></div> |
| | | </div> |
| | | <div class="line"> |
| | | <div class="cont"><span class="label">éæééï¼</span> <span class="txt">{{info.priceNum1 || '' }}æ¤</span></div> |
| | | <div class="cont"><span class="label">ç¨å·¥æ¶é´ï¼</span><span class="txt">{{info.startDate|| '' }}-{{info.endDate|| '' }}</span></div> |
| | | <div class="cont"><span class="label">ç¨å·¥å¤©æ°ï¼</span><span class="txt">{{info.totalDays || 0 }}</span></div> |
| | | </div> |
| | | <div class="line"> |
| | | <div class="cont"><span class="label">ç¨å·¥å°ç¹ï¼</span> <span class="txt">{{info.location || '' }}</span></div> |
| | | <div class="cont"><span class="label">è´¹ç¨æ åï¼</span><span class="txt">{{((info.price||0)/100).toFixed(2) }}{{info.priceUnit || '' }}</span></div> |
| | | <div class="cont"><span class="label">é¢ä¼°æ»è´¹ç¨ï¼</span><span class="txt yellowbtn">{{((info.estimatedAccount||0)/100).toFixed(2) }}å
</span></div> |
| | | </div> |
| | | <div class="line"> |
| | | <div class="cont"><span class="label">å°ç¹æè¿°ï¼</span><span class="txt">{{info.locationRemark || '' }}</span></div> |
| | | </div> |
| | | <div class="line"> |
| | | <div class="cont" ><span class="label">éæ±æè¿°ï¼</span><span class="txt">{{info.supplement || '' }}</span></div> |
| | | </div> |
| | | <div class="line"> |
| | | <div class="cont"> |
| | | <span class="label">å¾çï¼</span> |
| | | <span class="txt" v-if="!info.multifileList || info.multifileList.length ==0">æ </span> |
| | | </div> |
| | | </div> |
| | | <div class="line" v-if="info.multifileList && info.multifileList.length>0"> |
| | | <div class="cont"> |
| | | <template v-if="info.multifileList && info.multifileList.length>0"> |
| | | <div v-for="item in info.multifileList" style="display: inline-block" :key="item"> |
| | | <el-image v-if="item.fileurlFull" style="width: 50px; height: 50px; margin-right: 10px" :src="item.fileurlFull" |
| | | :preview-src-list="[info.fileurlFull]"> |
| | | </el-image> |
| | | </div> |
| | | </template> |
| | | </div> |
| | | </div> |
| | | <div class="line" v-if="info.auditStatus == 3 || info.auditStatus == 2" :style="'background-color: '+(info.auditStatus==2?'#eff8ea':'rgb(253 226 226)')+';padding: 20px'"> |
| | | <span class="label"> å®¡æ ¸äººï¼</span> <span class="txt">{{info.editorName}} </span><span class="label">{{info.auditTime || '' }} </span> |
| | | <div style="margin-top: 20px"> <span class="label"> å®¡æ ¸ä¿¡æ¯ï¼</span> <span class="txt">{{info.auditRemark || '' }}</span></div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </GlobalWindow> |
| | | </template> |
| | | |
| | | <script> |
| | | import GlobalWindow from '@/components/common/GlobalWindow' |
| | | import BaseOpera from '@/components/base/BaseOpera' |
| | | import { getById,cancel } from '@/api/business/orders' |
| | | export default { |
| | | components: { |
| | | GlobalWindow |
| | | }, |
| | | extends: BaseOpera, |
| | | data () { |
| | | return { |
| | | id: '', |
| | | info: {}, |
| | | loading: false |
| | | } |
| | | }, |
| | | methods: { |
| | | open (title, row) { |
| | | this.title = title |
| | | this.visible = true |
| | | this.tableData2 = [] |
| | | this.id = row.id |
| | | this.getData() |
| | | }, |
| | | getData () { |
| | | getById(this.id) |
| | | .then(res => { |
| | | this.info = res |
| | | this.visible = true |
| | | console.log(this.info) |
| | | }) |
| | | }, |
| | | close () { |
| | | |
| | | }, |
| | | checkDo (status) { |
| | | console.log(this.$refs.formCheck.length) |
| | | this.$refs.formCheck.validate((valid) => { |
| | | if (!valid) { |
| | | return |
| | | } |
| | | this.$dialog.actionConfirm('æ¨ç¡®è®¤ãåæ¶ã该ç³è¯·åï¼', 'æä½ç¡®è®¤') |
| | | .then(() => { |
| | | this.dealing = true |
| | | cancel({ |
| | | id: this.id, |
| | | auditStatus: status, |
| | | auditRemark: this.form.auditRemark |
| | | }) |
| | | .then(res => { |
| | | this.$tip.apiSuccess('æä½æå') |
| | | this.getData() |
| | | this.$emit('success') |
| | | }) |
| | | .catch(e => { |
| | | this.$tip.apiFailed(e) |
| | | }) |
| | | .finally(() => { |
| | | this.dealing = false |
| | | }) |
| | | }) |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | @import '@/assets/style/variables.scss'; |
| | | .bottom{ |
| | | text-align: center; |
| | | display: block; |
| | | height: auto; |
| | | background-color: #e4ecfe; |
| | | width: calc(100% - 32px); |
| | | z-index: 999; |
| | | padding: 16px; |
| | | } |
| | | .renzheng{ |
| | | margin: 0px 0px 50px 20px; |
| | | width: calc(100% - 60px); |
| | | .detail{ |
| | | font-size: 14px; |
| | | .label{ |
| | | //color: #8c939d; |
| | | } |
| | | .txt{ |
| | | margin-right: 30px; |
| | | } |
| | | .line{ |
| | | font-size: 12px; |
| | | margin-top: 15px; |
| | | display: flex; |
| | | width: calc(100% - 60px); |
| | | .cont{ |
| | | flex: 1; |
| | | } |
| | | } |
| | | } |
| | | .ml10{ |
| | | margin-left: 10px; |
| | | } |
| | | .info{ |
| | | font-size: 14px; |
| | | font-weight: bold; |
| | | color: #5a72c5; |
| | | } |
| | | .tag2{ |
| | | font-size: 12px; |
| | | } |
| | | } |
| | | .home_title { |
| | | .mr10{ |
| | | margin-right: 10px; |
| | | } |
| | | .m10{ |
| | | margin: 10px; |
| | | } |
| | | .bluebtn{ |
| | | color: #2985f7; |
| | | } |
| | | .tag1{ |
| | | border-radius: 10px; |
| | | font-size: 10px; |
| | | padding: 0px 15px; |
| | | height: 24px; |
| | | } |
| | | display: flex; |
| | | justify-content: space-between; |
| | | align-items: center; |
| | | .left { |
| | | font-weight: 500; |
| | | font-size: 14px; |
| | | margin-right: 10px; |
| | | display: flex; |
| | | align-items: center; |
| | | .status { |
| | | padding: 0 6px; |
| | | height: 22px; |
| | | line-height: 22px; |
| | | border-radius: 2px; |
| | | border: 1px solid #00BA92; |
| | | color: #00BA92; |
| | | font-weight: 400; |
| | | font-size: 12px; |
| | | color: #00BA92; |
| | | } |
| | | } |
| | | } |
| | | .tab{ |
| | | width: 20%; |
| | | } |
| | | .remark { |
| | | //background: #E8EBF7; |
| | | border-radius: 2px; |
| | | font-size: 14px; |
| | | margin: 10px 10px 0px -10px; |
| | | button{ |
| | | border: none; |
| | | cursor: default; |
| | | margin-right: 20px; |
| | | background: #e4ecfe; |
| | | } |
| | | } |
| | | .bluebtn{ |
| | | font-weight: bold; |
| | | color: #2985f7; |
| | | } |
| | | |
| | | .redbtn{ |
| | | font-weight: bold; |
| | | color: #ff1b1b; |
| | | } |
| | | .yellowbtn{ |
| | | font-weight: bold; |
| | | color: #fc9d20; |
| | | } |
| | | |
| | | .tabs { |
| | | border-bottom: 1px solid #DFE2E8; |
| | | display: flex; |
| | | margin-bottom: 20px; |
| | | .tab { |
| | | height: 58px; |
| | | line-height: 58px; |
| | | font-size: 14px; |
| | | color: #666666; |
| | | margin-right: 30px; |
| | | cursor: pointer; |
| | | } |
| | | |
| | | .active { |
| | | font-weight: 500; |
| | | color: $primary-color; |
| | | border-bottom: 2px solid $primary-color; |
| | | } |
| | | } |
| | | |
| | | .main { |
| | | padding: 12px 16px; |
| | | .title { |
| | | font-weight: 500; |
| | | font-size: 12px; |
| | | color: $primary-color; |
| | | margin-bottom: 15px; |
| | | } |
| | | /deep/ .el-form-item__label{ |
| | | font-size: 12px; |
| | | } |
| | | .list { |
| | | display: flex; |
| | | flex-wrap: wrap; |
| | | /*background: #F7F7F7;*/ |
| | | border-radius: 2px; |
| | | /*padding: 15px 20px;*/ |
| | | margin-bottom: 20px; |
| | | |
| | | .item { |
| | | font-size: 14px; |
| | | width: 25%; |
| | | margin-bottom: 16px; |
| | | |
| | | .la { |
| | | color: #7f7f7f; |
| | | margin-bottom: 10px; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | /deep/ .window__body { |
| | | padding: 0px !important; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <GlobalWindow |
| | | :title="title" |
| | | width="50%" |
| | | :withFooter="false" |
| | | :visible.sync="visible" |
| | | :confirm-working="isWorking" |
| | | > |
| | | <el-timeline reverse> |
| | | <el-timeline-item v-for="(item, index) in list" :key="index" :hide-timestamp="true"> |
| | | <div style="display: flex; flex-direction: column;"> |
| | | <span class="a">{{item.title}}</span> |
| | | <span class="b">{{item.creatorName}} {{item.companyName || 'å¹³å°çèµå'}} {{item.createDate }}</span> |
| | | <span class="c" v-if="index >0 && item.content">说æï¼{{item.content}}</span> |
| | | </div> |
| | | </el-timeline-item> |
| | | </el-timeline> |
| | | </GlobalWindow> |
| | | </template> |
| | | |
| | | <script> |
| | | import BaseOpera from '@/components/base/BaseOpera' |
| | | import GlobalWindow from '@/components/common/GlobalWindow' |
| | | export default { |
| | | name: 'orderProgress', |
| | | extends: BaseOpera, |
| | | components: { GlobalWindow }, |
| | | data () { |
| | | return { |
| | | list: [] |
| | | } |
| | | }, |
| | | methods: { |
| | | open (title, target) { |
| | | this.title = title |
| | | this.list = target |
| | | this.visible = true |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .a { |
| | | color: rgba(16,16,16,1); |
| | | font-size: 14px; |
| | | } |
| | | .b { |
| | | color: rgba(154,154,154,1); |
| | | font-size: 14px; |
| | | margin: 10px 0; |
| | | } |
| | | .c { |
| | | color: rgba(16,16,16,1); |
| | | font-size: 14px; |
| | | } |
| | | </style> |
| | |
| | | .yellowstate{ |
| | | color: #fc9d20; |
| | | } |
| | | |
| | | .orderstate4{ |
| | | color: #157713; |
| | | } |
| | | .orderstate0,.orderstate1,.orderstate2,.orderstate3{ |
| | | color: #2080f7; |
| | | } |
| | | .orderstate99{ |
| | | color: #5d6269; |
| | | } |
| | | </style> |
| | |
| | | <el-option label="已忶" :value="99"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="å叿¶é´" style="width: 380px;" label-width="100px" > |
| | | <el-date-picker type="datetime" style="width: 120px" v-model="searchForm.createTimeStart" clearable value-format="yyyy-MM-dd HH:mm:ss" |
| | | placeholder="å¼å§æ¶é´" />- |
| | | <el-date-picker type="datetime" style="width: 120px" v-model="searchForm.createTimeEnd" clearable value-format="yyyy-MM-dd HH:mm:ss" |
| | | <el-form-item label="å叿¶é´" prop="createTimeStart" label-width="100px" > |
| | | <el-date-picker type="datetime" style="width: 150px" v-model="searchForm.createTimeStart" clearable value-format="yyyy-MM-dd HH:mm:ss" |
| | | placeholder="å¼å§æ¶é´" /> - |
| | | </el-form-item> |
| | | <el-form-item label="" prop="createTimeEnd" label-width="0px" > |
| | | <el-date-picker type="datetime" style="width: 150px" v-model="searchForm.createTimeEnd" clearable value-format="yyyy-MM-dd HH:mm:ss" |
| | | placeholder="ç»ææ¶é´" /> |
| | | </el-form-item> |
| | | <el-form-item label="æ¥åæ¶é´" style="width: 380px;" label-width="100px" > |
| | | <el-date-picker type="datetime" style="width: 120px" v-model="searchForm.acceptTimeStart" clearable value-format="yyyy-MM-dd HH:mm:ss" |
| | | placeholder="å¼å§æ¶é´" />- |
| | | <el-date-picker type="datetime" style="width: 120px" v-model="searchForm.acceptTimeEnd" clearable value-format="yyyy-MM-dd HH:mm:ss" |
| | | <el-form-item label="æ¥åæ¶é´" prop="acceptTimeStart" label-width="100px" > |
| | | <el-date-picker type="datetime" style="width: 150px" v-model="searchForm.acceptTimeStart" clearable value-format="yyyy-MM-dd HH:mm:ss" |
| | | placeholder="å¼å§æ¶é´" /> - |
| | | </el-form-item> |
| | | <el-form-item label="" prop="acceptTimeEnd" label-width="0px" > |
| | | <el-date-picker type="datetime" style="width: 150px" v-model="searchForm.acceptTimeEnd" clearable value-format="yyyy-MM-dd HH:mm:ss" |
| | | placeholder="ç»ææ¶é´" /> |
| | | </el-form-item> |
| | | <el-form-item label="宿æ¶é´" style="width: 380px;" label-width="100px" > |
| | | <el-date-picker type="datetime" style="width: 120px" v-model="searchForm.doneTimeStart" clearable value-format="yyyy-MM-dd HH:mm:ss" |
| | | placeholder="å¼å§æ¶é´" />- |
| | | <el-date-picker type="datetime" style="width: 120px" v-model="searchForm.doneTimeEnd" clearable value-format="yyyy-MM-dd HH:mm:ss" |
| | | <el-form-item label="宿æ¶é´" prop="doneTimeStart" label-width="100px" > |
| | | <el-date-picker type="datetime" style="width: 150px" v-model="searchForm.doneTimeStart" clearable value-format="yyyy-MM-dd HH:mm:ss" |
| | | placeholder="å¼å§æ¶é´" /> - |
| | | </el-form-item> |
| | | <el-form-item label="" prop="doneTimeEnd" label-width="0px" > |
| | | <el-date-picker type="datetime" style="width: 150px" v-model="searchForm.doneTimeEnd" clearable value-format="yyyy-MM-dd HH:mm:ss" |
| | | placeholder="ç»ææ¶é´" /> |
| | | </el-form-item> |
| | | <section> |
| | | <el-button type="primary" @click="search">æç´¢</el-button> |
| | | <el-button @click="reset">éç½®</el-button> |
| | | <el-button type="primary" :loading="isWorking.export" @click="exportExcel">导åº</el-button> |
| | | </section> |
| | | </el-form> |
| | | <!-- è¡¨æ ¼åå页 --> |
| | |
| | | <span style="cursor: pointer;color: #2E68EC" @click="openDetail(row)">{{row.code}}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="statusName" label="订åç¶æ" min-width="100px" > </el-table-column> |
| | | <el-table-column prop="statusName" label="订åç¶æ" min-width="100px" > |
| | | <template slot-scope="{row}"> |
| | | <span :class="'orderstate'+row.status">{{row.statusName}}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="type" label="订åç±»å" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <span v-if="row.type==0">ç¨å·¥å</span> |
| | |
| | | fixed="right" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" class="redstate" @click="cancenDo(row)" v-if="row.status>-1 && row.status<4" icon="el-icon-delete" v-permissions="['business:orders:update']">åæ¶</el-button> |
| | | <el-button type="text" class="redstate" @click="cancelDo(row)" v-if="row.status>-1 && row.status<4" icon="el-icon-delete" v-permissions="['business:orders:update']">åæ¶</el-button> |
| | | <el-button type="text" @click="openDetail( row)" icon="el-icon-info" >详æ
</el-button> |
| | | </template> |
| | | </el-table-column> |
| | |
| | | </pagination> |
| | | </template> |
| | | <!-- æ°å»º/ä¿®æ¹ --> |
| | | <OperaOrdersWindow ref="operaOrdersWindow" @success="handlePageChange"/> |
| | | <OperaOrderDetailWindow ref="OperaOrderDetailWindow" @success="handlePageChange"/> |
| | | </TableLayout> |
| | | </template> |
| | | |
| | |
| | | import BaseTable from '@/components/base/BaseTable' |
| | | import TableLayout from '@/layouts/TableLayout' |
| | | import Pagination from '@/components/common/Pagination' |
| | | import OperaOrdersWindow from '@/components/business/OperaOrdersWindow' |
| | | import OperaOrderDetailWindow from '@/components/business/OperaOrderDetailWindow' |
| | | import { cancel } from '@/api/business/orders' |
| | | export default { |
| | | name: 'Orders', |
| | | extends: BaseTable, |
| | | components: { TableLayout, Pagination, OperaOrdersWindow }, |
| | | components: { TableLayout, Pagination, OperaOrderDetailWindow }, |
| | | data () { |
| | | return { |
| | | // æç´¢ |
| | |
| | | doneTimeStart: null, |
| | | doneTimeEnd: null, |
| | | status: null, |
| | | code:null |
| | | code: null |
| | | } |
| | | } |
| | | }, |
| | |
| | | }) |
| | | this.search() |
| | | }, |
| | | methods:{ |
| | | methods: { |
| | | openDetail (row) { |
| | | // this.$refs.OperaMemberDetailWindow.open('ç¨æ·è¯¦æ
', row.id) |
| | | this.$refs.OperaOrderDetailWindow.open('订å详æ
', row ) |
| | | }, |
| | | cancenDo(row){ |
| | | |
| | | cancelDo (row) { |
| | | this.$dialog.actionConfirm('æ¨ç¡®è®¤ãåæ¶ã该订ååï¼', 'æä½ç¡®è®¤') |
| | | .then(() => { |
| | | this.dealing = true |
| | | cancel(row.id) |
| | | .then(res => { |
| | | this.$tip.apiSuccess('æä½æå') |
| | | this.search() |
| | | }) |
| | | .catch(e => { |
| | | this.$tip.apiFailed(e) |
| | | }) |
| | | .finally(() => { |
| | | this.dealing = false |
| | | }) |
| | | }) |
| | | } |
| | | } |
| | | } |
| | |
| | | |
| | | public static void main(String[] args) { |
| | | ObsUtil blobUtil = new ObsUtil("HPUAQVBRXX9A9TLZ3RTA","uHC2uoFh42Z2xgQmCBBtG8rNZ4Caf85qQ2DQqZZf","obs.cn-south-1.myhuaweicloud.com"); |
| | | blobUtil.uploadLocalFile(new File("D://static/1.png"),"jinkuai","member/1.png"); |
| | | // blobUtil.uploadLocalFile(new File("D://static/2.png"),"jinkuai","identity/2.png"); |
| | | // blobUtil.uploadLocalFile(new File("D://static/3.png"),"jinkuai","identity/3.png"); |
| | | // blobUtil.uploadLocalFile(new File("D://static/4.png"),"jinkuai","identity/4.png"); |
| | | blobUtil.uploadLocalFile(new File("D://static/1.png"),"jinkuai","orders/1.png"); |
| | | blobUtil.uploadLocalFile(new File("D://static/2.png"),"jinkuai","orders/2.png"); |
| | | blobUtil.uploadLocalFile(new File("D://static/3.png"),"jinkuai","orders/3.png"); |
| | | blobUtil.uploadLocalFile(new File("D://static/4.png"),"jinkuai","orders/4.png"); |
| | | } |
| | | public static Integer uploadNetFile(ObsClient obsClient,String bucketName,String url, String objectKey) throws IOException { |
| | | InputStream is = new URL(url).openStream(); |
| | |
| | | private Integer type; |
| | | |
| | | @ApiModelProperty(value = "å¼å§æ¶é´ yyyy-MM-dd") |
| | | @JsonFormat(pattern = "yyyy-MM-dd") |
| | | private Date startDate; |
| | | |
| | | @ApiModelProperty(value = "ç»ææ¶é´ yyyy-MM-dd") |
| | | @JsonFormat(pattern = "yyyy-MM-dd") |
| | | private Date endDate; |
| | | |
| | | @ApiModelProperty(value = "å°ç¹ä¿¡æ¯/ç¨è½¦èµ·ç¹/ç¨é¤å°ç¹") |
| | |
| | | } |
| | | |
| | | //åå°ååé |
| | | memberMapper.update(new UpdateWrapper<Member>().lambda().set(Member::getPublishNum,"publish_num - 1").eq(Member::getId,orders.getReleaseMemberId())); |
| | | memberMapper.update(new UpdateWrapper<Member>().lambda() |
| | | .setSql("publish_num = ifnull(publish_num,0) - 1") |
| | | .eq(Member::getId,orders.getReleaseMemberId())); |
| | | |
| | | if(Constants.equalsInteger(orders.getStatus(),Constants.TWO)||Constants.equalsInteger(orders.getStatus(),Constants.THREE)){ |
| | | //åå°æ¥åé |
| | | memberMapper.update(new UpdateWrapper<Member>().lambda().set(Member::getReceiveNum,"receive_num - 1").eq(Member::getId,orders.getAcceptMemberId())); |
| | | memberMapper.update(new UpdateWrapper<Member>().lambda() |
| | | .setSql("receive_num = ifnull(receive_num,0) - 1") |
| | | .eq(Member::getId,orders.getAcceptMemberId())); |
| | | } |
| | | |
| | | Date date = new Date(); |
| | | ordersMapper.update(new UpdateWrapper<Orders>().lambda() |
| | | .set(Orders::getStatus,Constants.ordersStatus.cancel.getKey()) |
| | | .set(Orders::getUpdateTime,"now()") |
| | | .set(Orders::getCancelTime,"now()") |
| | | .set(Orders::getUpdateTime,date) |
| | | .set(Orders::getCancelTime,date) |
| | | .set(Orders::getCancelType,Constants.TWO) |
| | | .eq(Orders::getId,orders.getId()) |
| | | ); |